Javascript数组未获取和。而不是检索数组本身

Javascript数组未获取和。而不是检索数组本身,javascript,arrays,Javascript,Arrays,一个函数正在将值推送到“newdata”数组,如[“5.0”、“68.0”、“18.0”、“5.0”]如何添加这些值 var newdata = ["5.0", "68.0", "18.0", "5.0"] var total = 0; for (i=0;i<newdata.length;i++) { total = (total + newdata[i]); } alert(total); var newdata=[“5.0”、“68.0”、“18.0”、“5.0”] var合

一个函数正在将值推送到“newdata”数组,如[“5.0”、“68.0”、“18.0”、“5.0”]如何添加这些值

var newdata = ["5.0", "68.0", "18.0", "5.0"]
var total = 0;
for (i=0;i<newdata.length;i++)
{
    total = (total + newdata[i]);
}
alert(total);
var newdata=[“5.0”、“68.0”、“18.0”、“5.0”]
var合计=0;

对于(i=0;i,数组由字符串组成,而不是数字。因此循环中的
+
执行字符串串联而不是数字相加

将数组声明为实际数字的列表:

var newdata = [5.0, 68.0, 18.0, 5.0];
或者,如果数组来自无法控制的地方,请转换循环中的每个值:

for (i=0;i<newdata.length;i++)
    {
        total = (total + +newdata[i]);
    }

对于(i=0;i为了得到总和,您应该尝试以下方法:

total = total + parseFloat(newdata[i],10);
或者更紧凑

total += parseFloat(newdata[i],10);
在代码中,只需在名为
newdata
的数组中添加元素,这些元素是字符串而不是数字。

使用parseFloat()可以:

var newdata=[“5.0”、“68.0”、“18.0”、“5.0”]
var合计=0;
对于(i=0;i

console.log(total);

您应该使用
parseInt(newdata[i],10)
@AaditMShah谢谢您的评论!我将编辑我的帖子。尝试:
var total=[5,68,18,5]。reduce(函数(a,b){返回a+b;})
;Paita,你必须将
parseInt
更改为
parseFloat
。我在最初的回答中犯了同样的错误:)
newdata
中的数字不是整数。如何将值作为数字添加到数组中?默认情况下,它是作为字符串添加的。什么是将数字作为字符串添加?将新数字添加到数组中的代码在哪里?
var newdata = ["5.0", "68.0", "18.0", "5.0"]
var total = 0;

for (i=0;i < newdata.length;i++) {
    total = (total + parseFloat(newdata[i]));
}