您好,我有一串用逗号分隔的数字“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;})
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)