扫码一下
查看教程更方便
_.reduce(list, iteratee, [memo], [context])
reduce() 方法将所有值减少为单个值。 它遍历给定的元素列表,如果传递第二个参数 iteratee,则调用绑定到上下文对象的 iteratee 函数。 Iteratee 使用三个参数调用:(element, index, list)。 在 JavaScript 对象的情况下,iteratee 的对象将是(value, key, list)。 返回列表从而进行链接。
Memo是reduction的第一个状态,它的每一个后续步骤都应该由iteratee返回。 如果没有 memo 传递给 reduce 的初始调用,那么第一个元素将作为 memo 传递给iteratee,同时在列表中的下一个元素上调用 iteratee。
var _ = require('underscore');
//示例 1. 获取数组所有数的总和
var sum = _.reduce([1, 2, 3], function(memo, num) { return memo + num }, 0);
console.log(sum);
//示例 2. 获取对象中所有数的总和
sum = _.reduce({one: 1, two: 2, three: 3}, function(memo, num) { return memo + num }, 0);
console.log(sum);
上面示例运行结果如下