为什么我在尝试获取数字总和时得到NaN
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么我在尝试获取数字总和时得到NaN相关的知识,希望对你有一定的参考价值。
我正在尝试获取一个新数组,该数组应该是初始数组中数字的总和。但是我得到了NaN。我不明白为什么会这样。在我看来+ =运算符无效。我尝试使用=而不是+ =并且它起作用(当然仅适用于一次迭代)。帮助我了解为什么+ =运算符在我的情况下不起作用。
const arr=[2, 4, 6, 8];
let newArr;
const sum = arr =>
for(let i = 0; i<arr.length; i++)
newArr += arr[i] + arr[i+1];
return newArr;
;
sum(arr)
console.log('newArr', newArr);
答案
两件事:newArr
必须初始化为零,并且循环每次迭代仅应添加一个数组元素。
声明newArr
内部函数,然后将返回值保存在某个地方会更干净。
const arr=[2, 4, 6, 8];
const sum = arr =>
let newArr = 0;
for(let i = 0; i<arr.length; i++)
newArr += arr[i];
return newArr;
;
let total = sum(arr);
console.log('total: ', total);
另一答案
let newArr;
此未定义类型默认情况下应为0。
const arr = [2, 4, 6, 8];
var newArr = 0;
const sum = arr =>
for (let i = 0; i < arr.length; i++)
newArr += arr[i];
return newArr;
;
sum(arr)
console.log('newArr', newArr);
以上是关于为什么我在尝试获取数字总和时得到NaN的主要内容,如果未能解决你的问题,请参考以下文章
RMS 的快速计算在 Java 中给出了 NaN - 浮点错误?