You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Array.reduce()求和始终返回0,无法正常工作的问题求助

问题:Array.reduce()求和始终返回0,数组明明有值?

我尝试用Array.reduce()对数组中的数值求和,但方法一直无法正常工作,返回结果始终是0。我通过console.log打印数组,确认数组里确实存在数值,却不知道为什么没法完成求和操作。

我的代码如下:

const cubitMeters =
  (parseInt(height) * parseInt(width) * parseInt(length) * parseInt(count)) / 1000000
totalW.push(cubitMeters)
const totalW = []
const sum = totalW.reduce((a, b) => a + b, 0)

console.log('sum: ' + sum)
console.log(totalW)

问题原因

核心问题是变量声明顺序错误:你先尝试往totalW数组里push数值,但紧接着又用const totalW = []重新声明了一个全新的空数组。后面调用reduce求和的是这个刚创建的空数组,结果自然是0。

修正代码

把数组的声明放在push操作之前,确保所有操作针对的是同一个数组:

// 先声明空数组
const totalW = []
const cubitMeters =
  (parseInt(height, 10) * parseInt(width, 10) * parseInt(length, 10) * parseInt(count, 10)) / 1000000
// 往同一个数组添加元素
totalW.push(cubitMeters)
// 对有值的数组求和
const sum = totalW.reduce((a, b) => a + b, 0)

console.log('sum: ' + sum)
console.log(totalW)

额外提示:使用parseInt时建议加上第二个参数(基数,比如10),避免因字符串前缀问题导致的意外解析错误;如果涉及小数计算,也可以考虑用parseFloat()或Number()来转换数值。

内容的提问来源于stack exchange,提问作者Mateusz Szumilo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 19:55:22