Reduce 加 ing

让 JavaScript 的 Array.prototype.reduce() 方法为你所用!

什么是 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 循环替代。