reduce 方法的作用
reduce 方法用于遍历数组,**对每个元素执行回调函数,**并将结果累计到一个单一的值。
array.reduce((累加值, 当前值) => { … }, 初始值);
累加值(accumulator):上一次回调函数返回的值(第一次遍历时是 初始值)。
当前值(currentValue):当前正在处理的数组元素。
初始值(可选):指定 accumulator 的初始值。
const numbers = [1, 2, 3, 4, 5];
const sum = numbers.reduce((acc, curr) => acc + curr, 0);
console.log(sum); // 15
🔹 解释:
初始值 acc = 0
遍历数组:
0 + 1 = 1
1 + 2 = 3
3 + 3 = 6
6 + 4 = 10
10 + 5 = 15
最终结果是 15。
const people = [
{ id: 1, name: "Alice" },
{ id: 2, name: "Bob" },
{ id: 3, name: "Charlie" }
];
const peopleObj = people.reduce((acc, person) => {
acc[person.id] = person.name;
return acc;
}, {});
console.log(peopleObj);
// { '1': 'Alice', '2': 'Bob', '3': 'Charlie' }
🔹 示例 3:找出最大值
const numbers = [3, 7, 2, 9, 5];
const max = numbers.reduce((acc, curr) => (curr > acc ? curr : acc), -Infinity);
console.log(max); // 9
加粗样式