JavaScript 数组方法 reduce 的全面指南
reduce() 是 JavaScript 中数组的一个高阶函数,用于将数组中的所有元素“归约”为一个单一的值。
它通过一个“累加器”(accumulator)逐个处理数组元素,最终返回累加结果。
array.reduce(callback(accumulator, currentValue, index, array), initialValue)
const numbers = [1, 2, 3, 4];
const sum = numbers.reduce((acc, curr) => acc + curr, 0);
console.log(sum); // 输出: 10
const users = [
{ id: 1, name: '张三' },
{ id: 2, name: '李四' }
];
const userMap = users.reduce((acc, user) => {
acc[user.id] = user;
return acc;
}, {});
console.log(userMap);
const fruits = ['apple', 'banana', 'apple', 'orange', 'banana', 'apple'];
const count = fruits.reduce((acc, fruit) => {
acc[fruit] = (acc[fruit] || 0) + 1;
return acc;
}, {});
console.log(count); // { apple: 3, banana: 2, orange: 1 }
initialValue,reduce 会从数组的第二个元素开始执行,第一个元素作为初始累加器。initialValue 时,会抛出错误。reduce 不会修改原数组,但回调函数内部可以修改(不推荐)。当你需要将数组“压缩”成一个值时,比如: