La somme des valeurs d'un Tableau en JavaScript
J'ai défini une variables JavaScript appelé myData
qui est un new Array
comme ceci:
var myData = new Array(['2013-01-22', 0], ['2013-01-29', 0], ['2013-02-05', 0],
['2013-02-12', 0], ['2013-02-19', 0], ['2013-02-26', 0],
['2013-03-05', 0], ['2013-03-12', 0], ['2013-03-19', 0],
['2013-03-26', 0], ['2013-04-02', 21], ['2013-04-09', 2]);
Je me demande si il est possible d'additionner le nombre de valeurs que l'on retrouve dans le tableau (ex. 0+0+21+2+0 et ainsi de suite) et ont probablement une variable avec le résultat que je peux l'utiliser en dehors de la balise de script parce que j'ai 7 de ce type de tableaux correspondants pour chaque jour de la semaine. Je veux faire une comparaison par la suite sur cette base. C'est la méthode choisie pour ce type d'actions s'est-elle possible?
- Parcourir le tableau et ajouter la deuxième éléments de l'intérieur des tableaux.
Vous devez vous connecter pour publier un commentaire.
Essayez ce qui suit
JS:
myData[i][1]
. Et pourquoi utiliserparseFloat
si la valeur est déjà un certain nombre de toute façon?myData[i][1]
mais comment je fais myTotal disponibles dans d'autres balise de script?Vous pouvez utiliser le
Array.reduce
méthode:JS:
Voir SOCIÉTÉ
prev[1]
, je suppose. Par tous les moyens, le résultat ne sera pas donner23
.Array.reduce
est un ECMAscript 5 plus afin de ne pas être pris en charge par tous les navigateurs - voir ici developer.mozilla.org/en-US/docs/JavaScript/Reference/..., qui comprend également un bout de code qui peuvent être mises en œuvre pour surmonter cetteprev[1]
@MarkWalters: yep, mais on peut utiliser la cale du MDN-link (voir la réponse)var sum = myData.reduce((sum, current) => (sum + current[1]), 0);
Je pense que la façon la plus simple pourrait être:
values.reduce((a + b) => a + b)
Je voudrais utiliser réduire
Disponible sur jsfiddle
La création d'une somme méthode pourrait fonctionner très bien, par exemple, vous pouvez ajouter la fonction somme de la Matrice de
alors vous pourriez le faire
et dans votre cas,
Edit: l'Extension de la les builtins peut être mal vu parce que si tout le monde faisait ça nous permettrait de faire les choses de façon inattendue substituant les uns aux autres (collisions d'espace de noms). vous pouvez ajouter la fonction somme pour certains de module et d'accepter un tableau comme argument si vous le souhaitez.
que pourrait signifier que l'évolution de la signature de
myModule.sum = function(arr, selector) {
puisthis
deviendraitarr
Ou dans l'ES6
values.reduce((a, b) => a + b),
exemple:
Si vous voulez vous débarrasser de la matrice en même temps que la sommation, vous pourriez faire (dire,
stack
est le tableau):Vous pouvez utiliser le natif de la carte de méthode pour les Tableaux.
Méthode map (Tableau) (JavaScript)
un est votre résultat
Le javascript intégré pour réduire les Tableaux n'est pas un standard, mais vous pouvez utiliser underscore.js:
qui devient
pour votre cas. Jetez un oeil à cette violon aussi.
Ancienne (si vous n'avez pas maintenant la longueur d'arguments/paramètres)
ES6 (déstructuration de la matrice)