为什么我在尝试获取数字总和时得到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的主要内容,如果未能解决你的问题,请参考以下文章

尝试添加变量时出现 NaN 错误

RMS 的快速计算在 Java 中给出了 NaN - 浮点错误?

计算每个数字的4次幂的总和,为什么我得到错误的结果?

React Redux 在映射状态后获取 NaN

你会如何解决这个问题?使用reduce方法计算此数组中嵌套对象值的总和?

getAircraftLocation() - 获取Android中Lat / Lng的“NaN”(非数字)