让 JavaScript 的 Array.prototype.reduce() 方法为你所用!
reduce() 是 JavaScript 数组的一个高阶函数,用于将数组“归约”为单个值。
它接收一个“累加器函数”和一个可选的初始值,遍历数组的每个元素,逐步累积结果。
语法:
array.reduce((accumulator, currentValue, index, array) => {
// 返回新的 accumulator
}, initialValue);
1. 求数组总和
const numbers = [1, 2, 3, 4];
const sum = numbers.reduce((acc, val) => acc + val, 0);
// 结果:10
2. 将数组转为对象(按 ID 索引)
const users = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' }
];
const userMap = users.reduce((acc, user) => {
acc[user.id] = user;
return acc;
}, {});
// 结果:{ 1: {id:1, name:'Alice'}, 2: {id:2, name:'Bob'} }
点击按钮查看 reduce 实际运行结果:
虽然 reduce 功能强大,但对大型数组频繁操作时,
注意避免在每次迭代中创建新对象(如使用展开运算符 {...acc}),
这可能导致性能下降。必要时可考虑 for 循环替代。