【发布时间】:2021-07-12 05:49:12
【问题描述】:
我有几十个作用于数组的函数。为便于说明,请参阅 here。
如您所见,我使用 Underscorejs 进行大多数操作。
但是我想在我的主要迭代对象上编写一个转换,它是一个 JSON 对象列表,如下所示:
var listings = [{ title: 'title1', d: 0, desc: 'hello world', pass: 'qub7s1ya', tags: ["tag1", "tag2"] }]
因为我想真正优化性能,所以我想在desc 值上编写一个转换器。我将为此使用 lzutf8;这样我就将压缩值存储在磁盘和内存中。在每个 Underscorejs 操作中,我想对键 desc 的解压缩值进行操作。
显然,Underscore 操作不会直接作用于生成器,所以我的问题是如何实现这一点?
Edit1:我相信 Underscorejs 的所有操作都是顺序的,那为什么不支持生成器呢?还是我错过了什么?
Edit2:操作是作用于 JSON 对象或类似数组中的“键值”的操作
_#filter、_#findWhere、_#where、_#reject、_#pick
【问题讨论】:
-
从我所做的粗略搜索来看,实际上似乎并没有太大的兴趣。我的意思是,ES6 已经 5 岁了……似乎没有人在现代循环或花哨的迭代器中使用下划线(或 lodash)。
-
可能,当你有足够的精神和 & 意志力时,在那里再次编写所有数组函数。不过不是我:)
-
"显然,下划线操作不直接作用于生成器,所以我的问题是如何实现这一点?"请说明您希望能够做什么,否则将很难回答您的问题。
-
@Bergi “因为 ES6,你不再需要下划线”是每个人都在不断重复的普遍观点,但从根本上说这是不正确的。 Underscore 的大部分功能仍然不可从 vanilla JavaScript 中获得,因此除非您一直想重新发明轮子,否则您可以使用(类似的库)Underscore。
标签: javascript json underscore.js generator