reduce

_.reduce(list, iteratee, [memo], [context])Aliases: inject, foldl
别名为 injectfoldl, 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