我有以下代码
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。有人能帮助我吗?
谢谢!
答案 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])
具有相同的效果