Javascript数组未获取和。而不是检索数组本身
一个函数正在将值推送到“newdata”数组,如[“5.0”、“68.0”、“18.0”、“5.0”]如何添加这些值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合
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]));
}