js数组求和函数

最常用方法是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 是最灵活且推荐的方式。