Array.reduce()
是 JavaScript 数组的一个高阶函数,用于对数组中的每个元素进行累积计算并返回最终结果。
该方法接受两个参数:回调函数和初始值。回调函数会在数组的每个元素上调用,并接收四个参数:累积值(也称为累加器),当前元素值,当前索引和原始数组。
const numbers = [1, 2, 3, 4, 5];
const sum = numbers.reduce((accumulator, currentValue) => {
return accumulator + currentValue;
}, 0);
console.log(sum); // 输出:15
-
回调函数(callback function):这个函数非常重要,它定义了在每个数组元素上执行的操作。你可以给它起一个名字,比如
callback
,然后在函数体内编写你的逻辑。这个函数接收四个参数:- 累积值(accumulator):它代表当前的累积值,也可以理解为累加器。在每次迭代时,这个值会根据你的逻辑进行更新。
- 当前元素值(currentValue):它表示当前正在处理的数组元素的值。你可以使用它来进行计算或者进行其他操作。
- 当前索引(currentIndex):它表示当前正在处理的数组元素的索引。如果你需要根据索引来做一些特定的操作,可以使用它。
- 原始数组(array):它是你正在操作的原始数组。如果你需要引用原始数组中的其他元素,可以使用它。
-
初始值(initial value):这是
reduce()
方法的第二个参数,表示累积值的初始值。如果你提供了初始值,那么在第一次迭代时,累积值将使用这个初始值。如果你没有提供初始值,那么将使用数组的第一个元素作为初始值,并从第二个元素开始迭代。
回调函数会按照数组的顺序在每个元素上调用一次,从第一个元素到最后一个元素。它会根据你的逻辑对累积值进行更新,并在最后一次调用结束后返回最终的累积值作为结果。
const numbers = [1, 2, 3, 4, 5];
const sum = numbers.reduce((accumulator, currentValue) => accumulator + currentValue,10
);
console.log(sum); // 输出:25
参数解析:
- accumulator 累加开始的数(默认是undefined)每次会保留现在的值再 + 遍历(currentValue)的值
- currentValue 数组里的每一项(1,2,3,4,5)
- 0 从0开始累加,为几就从几开始累加