Array.reduce()
reduce() 方法对数组中的每个元素按照升序执行而一个提供的函数,每一次运行 会将先前元素的计算结果作为参数传入,最后将其结果汇总为单个返回值。【注意:这个方法只能用于数组】
Array.reduce()的参数
reduce(callbackFn(), initialValue)
第一个参数是一个回调函数,通常是箭头函数,每一次执行返回一个值作为下一次遍历的accumulator,如果是最后一次遍历,返回值为最终的计算结果,返回(可以是隐式也可以是显式),箭头函数的参数是两个,我们命名为accumulator和currentValue,accumulator为上一次调用callbackFn的结果,如果是第一次调用,accumulator为initialValue,如果initialValue没有指定,accumulator为数组的第一个值。currentValue为遍历的当前元素。
举个例子
const array1 = [1, 2, 3, 4];
// 0 + 1 + 2 + 3 + 4
const initialValue = 0;
const sumWithInitial = array1.reduce(
(accumulator, currentValue) => accumulator + currentValue,
initialValue,
);
console.log(sumWithInitial);
// Expected output: 10
值得注意的点
(1)Array.reduce()不仅可以用来处理JS中数组的遍历工作,还可以处理字面量对象的遍历,只不过需要先将对象利用Object.entries转换为数组再进行操作。
(2)Array.reduce()中的回调函数是箭头函数,如果只有一行的返回值,我们根据箭头函数语法省略return,省略花括号,如果打了花括号就必须要显示的利用return返回。