Underscore.JS - reduce 方法

语法

_.reduce(list, iteratee, [memo], [context])

reduce 方法将所有值简化为单个值。它遍历给定的元素列表,调用与上下文对象绑定的 iteratee 函数(如果传递)。Iteratee 使用三个参数调用:(memo、element、index、list)。对于 JavaScript 对象,iteratee 的对象将是(memo、value、key、list)。返回列表以用于链接目的。

Memo 是简化的第一个状态,它的每个后续步骤都应由 iteratee 返回。如果在初始调用 reduce 时未传递 memo,则在对列表中的下一个元素进行 iteratee 调用时,第一个元素将作为 memo 传递。

示例

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);

将上述程序保存在tester.js中。运行以下命令执行该程序。

命令

\>node tester.js

输出

6
6

underscorejs_iterating_collection.html