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