概述
对数组中的所有元素调用指定的回调函数。该回调函数的返回值为累积结果,并且此返回值在下一次调用该回调函数时作为参数提供。
语法
arr.reduce(callback[, initialValue])
参数
- callback(一个在数组中每一项上调用的函数,接受四个函数:)
- previousValue(上一次调用回调函数时的返回值,或者初始值)
- currentValue(当前正在处理的数组元素)
- currentIndex(当前正在处理的数组元素下标)
- array(调用reduce()方法的数组)
- initialValue(可选的初始值。作为第一次调用回调函数时传给previousValue的值)
返回值
通过最后一次调用回调函数获得的累积结果。
var orders = [
{amount: 100},
{amount: 238},
{amount: 300},
{amount: 50}
];
// 使用for循环实现累加
var total = 0;
for(var i = 0; i < orders.length; i++) {
total += orders[i].order;
}
// 使用reduce重写
var total = orders.reduce(function(sum, order){
return sum + order.amount;
}, 0);
// 使用es6重写
var total = orders.reduce((sum, order) => sum + order.amount, 0);
console.log(total);
// 输出为688
网友评论