reduce
_.reduce(list, iteratee, [memo], [context])
Aliases: inject, foldl
别名为 inject 和 foldl, reduce 方法把 list 中元素归结为一个单独的数值。Memo 是 reduce 函数的初始值,会被每一次成功调用 iteratee 函数的返回值所取代 。这个迭代传递4个参数:memo
,value
和 迭代的 index
(或者 key)和最后一个引用的整个 list
。
如果没有 memo 传递给 reduce 的初始调用,iteratee 不会被列表中的第一个元素调用。第一个元素将取代 memo 参数传递给列表中下一个元素调用的 iteratee 函数。
var sum = _.reduce([1, 2, 3], function(memo, num){ return memo + num; }, 0);
=> 6