Javascript 数组元素之和返回NaN
我有以下代码Javascript 数组元素之和返回NaN,javascript,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。有人能帮我吗 谢谢 您从不初始化sum,因此它会启动未定义的 未定义的+number=NaN
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。有人能帮我吗
谢谢 您从不初始化
sum
,因此它会启动未定义的
未定义的
+number=NaN未定义的
+“任何数字”总是NaN
声明起始值为0
的sum
。(aka:初始化它)
此外,在以下情况下使用基数也是一个好主意:
这确保parseInt
始终尝试将A[键]
解释为十进制数。以下是代码的工作版本
function solution ( A ) {
var sum = 0;
var len = A.length;
for ( key in A ) {
sum += parseInt(A[key], 10);
}
return sum;
}
你应该初始化sum
而且你的+(parseInt(一个[key])
与parseInt(一个[key])具有相同的效果
使用基数10表示parseInt这很奇怪,我在第一次尝试时就没用了。所以初始化是个问题。除了将sum
初始化为0之外,您还可以删除parseInt
,假设数组元素始终是数字。另外,在访问数组元素时,避免使用中的,以防数组。prototype
已扩展。在这种情况下,最好使用for
循环。
parseInt(A[key], 10)
function solution ( A ) {
var sum = 0;
var len = A.length;
for ( key in A ) {
sum += parseInt(A[key], 10);
}
return sum;
}