253 votes

Comment compter certains éléments dans un tableau ?

J'ai un tableau :

 [1, 2, 3, 5, 2, 8, 9, 2]

Je voudrais savoir combien de 2 s sont dans le tableau.

Quelle est la façon la plus élégante de le faire en JavaScript sans boucler avec la boucle for ?

116voto

Thor Jacobsen Points 2042

Très simple:

 var count = 0;
for(var i = 0; i < array.length; ++i){
    if(array[i] == 2)
        count++;
}

73voto

Raild Points 823

2017 : Si quelqu'un est toujours intéressé par la question, ma solution est la suivante :

 const arrayToCount = [1, 2, 3, 5, 2, 8, 9, 2];
const result = arrayToCount.filter(i => i === 2).length;
console.log('number of the found elements: ' + result);

11voto

Coleman Points 565

Si vous utilisez lodash ou underscore, la méthode _.countBy fournira un objet de totaux agrégés saisis par chaque valeur du tableau. Vous pouvez le transformer en une seule ligne si vous n'avez besoin de compter qu'une seule valeur :

 _.countBy(['foo', 'foo', 'bar'])['foo']; // 2

Cela fonctionne également très bien sur des tableaux de nombres. Le one-liner pour votre exemple serait :

 _.countBy([1, 2, 3, 5, 2, 8, 9, 2])[2]; // 3

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X