使用另一个数组中的值构建数组

时间:2010-04-05 20:55:10

标签: javascript arrays

这是我刚才回答concerning parsing numbers in an array的问题的后续跟进。

我有一个数组data[],其中包含我想在计算中使用的数字,然后将结果值放入另一个数组中。

所以说data[0] = 100。我想使用计算器(data[0]/dataSum*100).toFixed(2)找到一个百分比,其中dataSumdata[]中所有数字的总和。

我试过了:

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)],但我认为这会创建一个嵌套数组,我认为这不是我需要的。

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))