数组元素的总和返回NaN

时间:2014-09-23 11:58:23

标签: javascript

我有以下代码

var Arr = [-1,3,-4,5,1,-6,2,1];

function solution ( A ) {
  var sum;
  var len = A.length;
  for ( var key in A ) {
    sum += +(parseInt(A[key]));
  }
  return sum;
}

solution( Arr );

然后返回NaN。有人能帮助我吗?

谢谢!

3 个答案:

答案 0 :(得分:3)

您永远不会初始化sum,因此它会启动undefined

undefined + number = NaN

答案 1 :(得分:2)

undefined +“任何数字”总是 NaN

声明sum的起始值为0。 (又名:初始化)

var sum = 0;

另外,在parseInt中使用基数是个好主意:

parseInt(A[key], 10)

这可确保parseInt始终尝试将A[key]解释为十进制数。

答案 2 :(得分:1)

以下是您的代码的工作版本

function solution ( A ) {
  var sum = 0;
  var len = A.length;
  for ( key in A ) {
    sum += parseInt(A[key], 10);
  }
  return sum;
}

您应初始化sum+(parseInt(A[key]))parseInt(A[key])具有相同的效果