JavaScript 数组怎么求和

在日常开发中,你肯定遇到过需要把一堆数字加起来的场景——比如统计用户一周的消费总额、计算商品的总库存,这些零散的数字往往会被放进数组里存着,这时候就需要用JavaScript来给数组求和。很多刚接触前端的朋友刚开始会觉得“求和不就是加一加吗?”,但真写代码的时候,可能会发现不同方法的效率和适用场景差别很大,今天就用几个生活化的例子,把数组求和的几种常见方法讲明白。

最基础的:for循环求和

刚学编程的时候,大家最先接触的肯定是for循环,这个逻辑就像你整理零花钱的时候,把钱包里的硬币、纸币一张张拿出来,每次加一点,最后得出总金额。比如我们有一个存着一周早餐花费的数组[12, 15, 10, 18, 14, 16, 13],想算一周早餐花了多少钱,用for循环的话,步骤很简单:先定义一个初始值为0的变量存总和,然后循环数组的每一项,把每一项加到总和里就好。

JavaScript 数组怎么求和

具体代码也很好理解:

`javascript

const breakfastCost = [12, 15, 10, 18, 14, 16, 13];

let total = 0;

for (let i = 0; i < breakfastCost.length; i++) {

total += breakfastCost[i];

}

console.log(total); // 输出98

`

这种方法的好处是不用记额外的API,逻辑直白,适合新手理解,哪怕数组有特殊情况(比如某一项是0或者空),只要加个简单判断就能处理,缺点是代码多了点,写起来稍微麻烦。

更简洁的:reduce()方法求和

如果觉得for循环写起来有点繁琐,那JavaScript数组自带的reduce()方法就像你用计算器的一键求和功能,不用手动一步步加,只需要告诉计算器“要把每一项加起来”就行。reduce()是专门用来处理数组累加的方法,它接受两个核心参数:一个是“累加函数”,一个是初始值(一般填0)。

还是用刚才的早餐数组举例,代码可以简化成:

`javascript

const breakfastCost = [12, 15, 10, 18, 14, 16, 13];

const total = breakfastCost.reduce((sum, current) => sum + current, 0);

console.log(total); // 同样输出98

`

这里的sum就是每次累加后的总和,current是数组里当前要处理的那一项,初始值0保证了如果数组是空的,返回的结果也是0,不会报错。这种方法代码更短,是开发中最常用的数组求和方式,尤其适合在各种项目里快速处理数字累加。

特殊情况的处理

实际开发中,数组不一定全是数字,可能会有空白项、字符串类型的数字,甚至是非数字值,这时候就需要加个小判断,不然求和结果会出错。比如数组里有个空项[12, '', 10, null, 18],如果直接用上面的方法求和,结果会是120(因为空字符串和null在JS里会被当成0,但如果有非数字比如'abc',结果会变成NaN)。

这时候只要在累加的时候加个判断,只把数字类型的值加进去就行:

`javascript

const mixedArr = [12, '', 10, null, 'abc', 18];

const total = mixedArr.reduce((sum, current) => {

// 判断当前项是不是有效数字

if (typeof current === 'number' && !isNaN(current)) {

return sum + current;

}

return sum;

}, 0);

console.log(total); // 输出40

`

这个小技巧在处理用户输入生成的数组、后台返回的不确定数据时特别实用,能避免很多意外bug。

总的来说,JavaScript数组求和没有什么复杂的知识点,选for循环打基础,用reduce()处理日常需求,遇到特殊情况加个简单判断就够了,多练几次就能熟练掌握。

上一篇 C / C++ 编程语言核心特性与应用场景的知识科普