【发布时间】:2013-09-02 07:05:30
【问题描述】:
我有一个对象数组:
var arr = [
{field1: value, field2: value, field3: value, field4: value},
{field1: value, field2: value, field3: value, field4: value},
{field1: value, field2: value, field3: value, field4: value}
];
我需要将它分成 2 个对象数组:一个包含只有字段 1 和字段 3 的对象,另一个包含具有所有其余部分的对象。我正在尝试使用下划线(好吧,实际上是 LoDash - 但它们是相同的),到目前为止,我得到的只是:
var arr1 = [], arr2 = [];
_.forEach(arr, function(line) {
arr1.push(_.pick(line, ['field1', 'field3']));
arr2.push(_.omit(line, ['field1', 'field3']));
});
虽然这段代码有效,但它让我觉得效率非常低。我确定我缺少一个可以让我的生活更轻松、我的代码更易读、我的程序更高效的下划线函数。
【问题讨论】:
-
你说效率低是什么意思?
-
似乎发生了许多内部迭代。由于 US 和 LD 都表示他们有更好的迭代实现,我想知道是否有办法以某种方式利用它。
标签: javascript underscore.js lodash