javascript reduce() 方法使用教程

栏目: Javascript 发布时间:2025-02-21

一、基础概念

reduce() 是数组的高阶函数,用于‌将数组元素依次执行累加计算‌,最终返回单个值。

arr.reduce(callback(accumulator, currentValue, index, array), initialValue)
‌accumulator‌:累加器(中间结果)
‌currentValue‌:当前元素值
‌initialValue‌(可选):初始值

二、基础示例

1. 数组求和

const nums = [1, 2, 3, 4];
const sum = nums.reduce((acc, cur) => acc + cur, 0);
console.log(sum); // 10

2. 计算平均数

const avg = nums.reduce((acc, cur, index) => {
  acc += cur;
  return index === nums.length-1 ? acc/nums.length : acc;
}, 0);
console.log(avg); // 2.5

三、进阶用法

1. 二维数组转一维

const matrix = [[1,2], [3,4], [5,6]];
const flat = matrix.reduce((acc, cur) => acc.concat(cur), []);
// [1,2,3,4,5,6]

2. 统计词频

const words = ['apple', 'banana', 'apple'];
const count = words.reduce((acc, word) => {
  acc[word] = (acc[word] || 0) + 1;
  return acc;
}, {});
// { apple: 2, banana: 1 }

四、注意事项

  • ‌始终提供初始值‌(避免空数组报错)

  • ‌纯函数原则‌:回调函数不应修改原数组

  • ‌性能优化‌:避免在回调中创建新对象

五、适用场景对比

  • 方法 最佳场景

  • reduce() 数据聚合、复杂转换

  • map() 1:1元素转换

  • filter() 按条件筛选元素

掌握 reduce() 后,您将能更高效地处理复杂数据流! 🚀

本文地址:https://www.tides.cn/p_js-reduce