reduce
_.reduce(collection, [iteratee=_.identity], [accumulator])
通过 iteratee
遍历集合中的每个元素。 每次返回的值会作为下一次 iteratee
使用。 如果没有提供 accumulator
,则集合中的第一个元素作为 accumulator
。 iteratee 会传入4个参数:(accumulator, value, index|key, collection)。
有许多 lodash 的方法以 iteratees 的身份守护其工作,例如: _.reduce
, _.reduceRight
, 以及 _.transform
.
被守护的有:
assign
, defaults
, defaultsDeep
, includes
, merge
, orderBy
, 以及 sortBy
参数
collection (Array|Object)
需要遍历的集合
[iteratee=_.identity] (Function)
这个函数会处理每一个元素
[accumulator] (*)
初始化的值
返回值 (*)
返回累加后的值
示例
_.reduce([1, 2], function(sum, n) {
return sum + n;
}, 0);
// => 3
_.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {
(result[value] || (result[value] = [])).push(key);
return result;
}, {});
// => { '1': ['a', 'c'], '2': ['b'] } (无法保证遍历的顺序)