这是我刚才回答concerning parsing numbers in an array的问题的后续跟进。
我有一个数组data[]
,其中包含我想在计算中使用的数字,然后将结果值放入另一个数组中。
所以说data[0] = 100
。我想使用计算器(data[0]/dataSum*100).toFixed(2)
找到一个百分比,其中dataSum
是data[]
中所有数字的总和。
我试过了:
dataPercentage = [];
for (var i=0; i < data.length; i++) {
data[i] = parseFloat(data[i]);
dataSum += data[i];
// looping through data[i] and setting it equal to dataPercentage.
dataPercentage[] = (data[i]/dataSum*100).toFixed(2);
// thought maybe I was overriding dataPercentage everytime I looped?
dataPercentage[] += (data[i]/dataSum*100).toFixed(2);
}
我也试过设置dataPercentage = [(data/dataSum*100).toFixed(2)]
,但我认为这会创建一个嵌套数组,我认为这不是我需要的。
答案 0 :(得分:2)
您必须在计算百分比之前计算data
之前的所有值的总和。在您的代码中,您始终使用到i
数组的data
项之和。
var dataSum = 0.0;
var dataPercentage = [];
for (var i=0; i < data.length; i++) {
data[i] = parseFloat(data[i]);
dataSum += data[i];
}
for (var i=0; i < data.length; i++) {
dataPercentage[i] = (data[i]/dataSum*100).toFixed(2);
}
我不知道您尝试使用第二行dataPercentage[]
行达到了什么目的。
答案 1 :(得分:0)
dataPercentage.push((data[i]/dataSum*100).toFixed(2))