如何使用lodash _.foreach实现



我有以下内容:

var new = {};
old.forEach(function (u) { new[u.id] = u.name; });

有人可以向我解释如何使用lodash随附的_. foreach。

我以为lodash总是产生输出,我必须使用它。

否,这确实取决于功能。_.forEach仅在集合的元素上迭代。即使它 do 返回值,它只是您作为第一个参数传递的集合。

所以我认为这会更像:var new = _.foreach( ..有没有办法做到这一点,或者我总是需要做new[u.id}

您可以使用_.reduce,尽管我个人发现它比您的版本更可读,因为意图并不清楚:

var newObj = _.reduce(old, function(obj, v) {
    obj[v.id] = v.name;
    return obj; // or in one line: return  obj[v.id] = v.name, obj;
}, {});

理想情况下,您将使用诸如_.map之类的东西,这使得意图更清晰,但是通常无法从数组映射到对象,并且您无法从对象映射到具有Lodash的对象(看起来似乎)。<<<<<<<<<<<<<<

最新更新