2010-04-05 6 views
0

Ceci est une suite d'une question à laquelle j'ai répondu concerning parsing numbers in an array.Construction d'un tableau à partir des valeurs d'un autre tableau

J'ai un tableau, data[], avec des nombres que je voudrais utiliser dans un calcul et ensuite mettre les valeurs résultantes dans un autre tableau.

Donc, dites data[0] = 100. Je voudrais trouver un pourcentage en utilisant le calculatin, (data[0]/dataSum*100).toFixed(2)dataSum est la somme de tous les nombres dans data[].

J'ai essayé:

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

J'ai aussi essayé de placer juste dataPercentage = [(data/dataSum*100).toFixed(2)], mais je pense que cela crée un tableau imbriqué, que je ne pense pas que ce que je dois.

+0

Est-ce que 'dataPercentage []' devrait être 'dataPercentage [i]'? – Jimmy

Répondre

2

Vous devez calculer la somme de toutes les valeurs dans dataavant calculer le pourcentage. Dans votre code, vous utilisez toujours la somme jusqu'au i article du tableau 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); 
} 

Je ne sais pas ce que vous essayez d'atteindre avec votre deuxième ligne dataPercentage[].

+0

qui a fait l'affaire, merci! – Choy

+0

@George - c'est une bonne étiquette à up-vote à une réponse qui vous aide. Au moins je le pense. ;) – zombat

+0

@zombat, woops, voté! – Choy

0
dataPercentage.push((data[i]/dataSum*100).toFixed(2)) 
Questions connexes