我有以下内容:
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的对象(看起来似乎)。<<<<<<<<<<<<<<