解析javascript数组中的数字

嗨我有一串用逗号分隔的数字,“100,200,300,400,500”我正在使用javascript split函数分割成一个数组:

var data = [];
data = dataString.split(",");

我正在尝试使用parseFloat解析数组的值,然后将它们存储回数组中.然后,我想将数组中的数字相加,并将其存储为另一个变量“dataSum”.

我有以下代码,但我不能让它工作:

var dataSum = "";

for (var i=0; i < data.length; i++) {
    parseFloat(data[i]);
    dataSum += data[i];
}

因此,在所有这些结束时,我应该能够分别访问任何解析的数字data [0],data [1]等…并且具有dataSum的总数.我究竟做错了什么?

最佳答案
(1)

var dataSum = "";

您正在将dataSum初始化为字符串.对于字符串,=是连接运算符,因此串联会得到100200300400500.你应该把它初始化为0:

var dataSum = 0;

(2)

parseFloat不会修改输入参数.返回浮点值.所以你应该使用

dataSum += parseFloat(data[i]);

(3)

var data = [];
data = dataString.split(",");

第二项任务将覆盖第一项.写吧

var data = dataString.split(",");

(顺便说一句,ECMAScript 5支持这种单线程:

return "100,200,300,400,500".split(/,/).map(parseFloat).reduce(function(x,y){return x+y;})

)

转载注明原文:解析javascript数组中的数字 - 代码日志