添加数组元素时返回NaN

Abh*_*mar 1 javascript

给定数组是arr = [1,3,4,5]我的代码是

var sum =0; 
for(var i=0;i<=arr.length.i++){
     sum += arr[i];
}
console.log("Sum of array is "+sum);
Run Code Online (Sandbox Code Playgroud)

输出:而不是打印

数组的总和是:13

它在打印

数组的总和是:NaN

我是javascript的新手,所以请帮助我解释输出为什么它即将到来的NaN

Gru*_*ndy 5

错误

i<=arr.length
Run Code Online (Sandbox Code Playgroud)

使用

i<arr.length
Run Code Online (Sandbox Code Playgroud)

因为阵列索引为0到长度-1,和当i==arr.length,然后arr[i]===undefined,使number + undefined被给予NaN.

此外,您在这里有一个错字i<=arr.length.i++,而不是最后.应该是;

所以完成样品

var arr = [1,3,4,5];
var sum =0; 
for(var i=0;i<arr.length;i++){
     sum += arr[i];
}
console.log("Sum of array is "+sum);
document.write("Sum of array is "+sum);
Run Code Online (Sandbox Code Playgroud)

另外,对于求和元素,您可以使用reduce下一个方式的函数

var arr = [1,3,4,5];
var sum =arr.reduce(function(a,b){return a+b;}); 
console.log("Sum of array is "+sum);
document.write("Sum of array is "+sum);
Run Code Online (Sandbox Code Playgroud)