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

JavaScript中对数字数组求和得到NaN结果的原因是什么?

问题根因

  • 循环判断条件逻辑错误:JavaScript数组下标从0开始计数,你声明的numarr长度为3,合法下标只有0、1、2
  • 你使用的i <= len条件会让i最终取到等于len的3,此时访问numarr[3]返回undefined
  • 数值和undefined执行加法运算时,undefined会被隐式转换为NaN,最终累加结果就变为NaN

修复方法

方案1:修改循环条件

将循环判断条件从i <= len调整为i < len即可正常运行,修改后代码如下:

let numarr = [5598, 4589 ,25465164]
let len = numarr.length;
let i, numval = 0;
for(i=0; i < len; i++) {
  numval += numarr[i];
} 
document.getElementById("demo").innerHTML = numval;

方案2:使用数组内置方法简化

可以直接用Array.reduce()方法实现求和,代码更简洁不易出错:

const numarr = [5598, 4589 ,25465164]
const numval = numarr.reduce((sum, current) => sum + current, 0)
document.getElementById("demo").innerHTML = numval;

内容的提问来源于stack exchange,提问作者rohan saka

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 23:24:04