最常用方法是reduce()。1. 数字数组求和:const sum = [1,2,7].reduce((a,b) => a+b, 0); 输出10,初始值0确保空数组返回0。2. 非空数组可省略初始值:[1,2,3].reduce((a,b) => a+b)。3. 含字符串或null需先转换过滤:mixed.map(Number).filter(num => !isNaN(num)).reduce((a,b) => a+b, 0)。4. 对象数组字段求和:products.reduce((sum, item) => sum + item.price, 0) 输出60。reduce最灵活且推荐。

JavaScript中对数组求和最常用的方法是使用 reduce() 方法。它遍历数组,将每个元素累加到一个累计值上,最终返回总和。
1. 使用 reduce() 求和
适用于数字数组的求和操作:
const numbers = [1, 2, 7]; const sum = numbers.reduce((accumulator, currentValue) => accumulator + currentValue, 0); console.log(sum); // 输出: 10
说明: 第二个参数 0 是初始值,确保空数组返回 0。
2. 简化写法(适合非空数组)
const sum = [1, 2, 3].reduce((a, b) => a + b);
如果数组可能为空,建议始终传入初始值 0。
3. 处理包含字符串或 null 的数组
如果数组元素不是纯数字,需要先过滤或转换:
const mixed = [1, '2', null, 3, undefined, 4]; const sum = mixed .map(Number) // 转为数字,无效的变成 NaN .filter(num => !isNaN(num)) // 过滤掉 NaN .reduce((a, b) => a + b, 0); console.log(sum); // 输出: 10
4. 对象数组中某字段求和
常用于统计对象属性的总和:
const products = [
{ name: 'A', price: 10 },
{ name: 'B', price: 20 },
{ name: 'C', price: 30 }
];
const total = products.reduce((sum, item) => sum + item.price, 0);
console.log(total); // 输出: 60
基本上就这些,reduce 是最灵活且推荐的方式。










