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