js的reduce函数是一种可以将数组中的元素累积为一个值的操作,它接受一个函数作为参数,该函数接受4个参数:上一次调用的返回值(或者是提供的初始值)、当前元素值、当前索引值、调用reduce的数组。
使用方法:
arr.reduce(callback[, initialValue])
callback:执行数组中每个值的函数,包含四个参数:
- accumulator: 累计器,它是上一次调用回调返回的结果,或者初始值(initialValue)。
- currentValue:数组中当前被处理的元素。
- currentIndex:数组中当前被处理的元素的索引。
- array:调用 reduce 的数组。
initialValue:可选,作为第一次调用 callback 的第一个参数的值。如果没有提供初始值,则将使用数组中的第一个元素。在没有初始值的空数组上调用 reduce 将报错。
例子:
计算数组中元素的总和
var arr = [1, 2, 3, 4];
var sum = arr.reduce(function(accumulator, currentValue, currentIndex, array) {
return accumulator + currentValue;
});
// sum is 10
计算数组中元素的乘积
var arr = [1, 2, 3, 4];
var product = arr.reduce(function(accumulator, currentValue, currentIndex, array) {
return accumulator * currentValue;
});
// product is 24
使用初始值
var arr = [1, 2, 3, 4];
var initialValue = 10;
var sum = arr.reduce(function(accumulator, currentValue, currentIndex, array) {
return accumulator + currentValue;
}, initialValue);
// sum is 20