使用javascript的数组中的数字总和

使用javascript的数组中的数字总和,javascript,sum,Javascript,Sum,我试图得到一个数组中所有数字的总和。我试着用最简单的方法来做,但是总和显示为NAN。为什么会这样?请帮忙 var数=[45,34,12,10,8,9]; var i; 对于(i=0;i而言,问题在于您在循环中声明sum变量,而没有对其进行初始化 所以你得到了undefined+numbers[i],它等于NaN var数=[45,34,12,10,8,9]; var i; var总和=0; 对于(i=0;i问题在于sum的定义超出了您的函数范围,因此您实际执行的是var sum=undefi

我试图得到一个数组中所有数字的总和。我试着用最简单的方法来做,但是总和显示为NAN。为什么会这样?请帮忙

var数=[45,34,12,10,8,9];
var i;

对于(i=0;i而言,问题在于您在循环中声明sum变量,而没有对其进行初始化

所以你得到了
undefined+numbers[i]
,它等于
NaN

var数=[45,34,12,10,8,9];
var i;
var总和=0;

对于(i=0;i问题在于
sum
的定义超出了您的函数范围,因此您实际执行的是
var sum=undefined+numbers[i]
(即
NaN

即使如此,最好使用或箭头函数(如果可以使用ES6)

使用
reduce()

var编号=[45,34,12,10,8,9],
sum=numbers.reduce(函数(a,b){返回a+b;},0);
document.getElementById('output')。innerHTML=sum;

您正在为每个循环迭代创建一个新的
sum
变量,并且在声明之前使用它,因此
未定义+
为您提供
NaN

var总计=0;
[45,34,12,10,8,9].forEach(num=>{total+=num});
document.getElementById(“demo”).innerHTML=`总和为:${total}`;
JavaScript
此示例查找数组中所有数字的总和:


每次实例化sum时,将var sum从循环中取出,并获得sum

您还可以使用Array.prototype.reduce:

var-sum=[1,2,3].reduce(add,0);
功能添加(a、b){
返回a+b;
}

console.log(sum);//6
您应该在全局范围内为
定义
的的中定义和需要在循环外使用0进行初始化:
var sum=0;
我已经解决了。谢谢!)。我没有初始化变量。。请检查其他答案。在答案中添加一些代码可以使你的答案更有吸引力。这只是此问题的简化副本。