javascript - 我正在尝试在 Javascript 中添加数字数组的结果,但它显示的是 Nan 结果
问题描述
// 我想添加一个数字数组元素,但结果显示 Nan 为什么这样
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;
解决方案
这是因为<=
在for-loop
. 如果您使用<=
then 循环将运行超过数组的长度,它将尝试访问不存在的元素。
如果您尝试访问不存在的元素,那么它将返回undefined
。添加一个数字undefined
会给你NaN
要么使用numarr.length - 1
要么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;
<h1 id="demo"></h1>
替代解决方案:您也可以在此处使用 reduce 来达到相同的结果
let numarr = [5598, 4589, 25465164]
const numval = numarr.reduce((a, c) => a + c);
document.getElementById("demo").innerHTML = numval;
<h1 id="demo"></h1>
推荐阅读
- c++ - 随后的 cout 语句更改了我的初始 cout 中的文本
- javascript - 如何从 JavaScript 中的代码中获取鼠标点击事件
- java - 如何将 Gradle 分发插件与 Kotlin 多平台一起使用
- css - 悬停时更改 SVG 填充颜色不起作用
- java - 在 Jakarta EE Batch 失败时恢复数据库更改
- c# - SHA1CryptoServiceProvider 和 SHA256Managed 是否应该返回相同的值
- azure-devops - JMeter - 基于百分位的断言
- azure-web-app-service - Azure 混合连接 | Handle Count 每天都在增加,这导致 Azure App 服务停止
- json - Kubernetes:带有变量的 helm 图表中的 json 作为秘密
- javascript - 在 React-Chartjs 中未选择时如何使图例更改颜色