Compter les éléments uniques dans le tableau sans trier
En JavaScript suivantes trouverez le nombre d'éléments dans le tableau. En supposant qu'il y ait un minimum d'un élément dans le tableau
arr = ["jam", "beef", "cream", "jam"]
arr.sort();
var count = 1;
var results = "";
for (var i = 0; i < arr.length; i++)
{
if (arr[i] == arr[i+1])
{
count +=1;
}
else
{
results += arr[i] + " --> " + count + " times\n" ;
count=1;
}
}
Est-il possible de le faire sans l'aide de sort() ou sans mutation de la matrice en quelque sorte? J'imagine que le tableau devrait être re-créé et le tri peut être fait sur l'ensemble nouvellement créé, mais je veux savoir quelle est la meilleure façon sans tri.
Et oui, je suis un artiste, pas un programmeur, votre honneur.
source d'informationauteur Ghoul Fool
Vous devez vous connecter pour publier un commentaire.
Un moyen rapide de le faire est de copier les éléments uniques dans un Objet.
Lorsque cette boucle est terminée, l'
counts
objet, le comte de chaque élément distinct de la matrice.Cette expression vous donne tous les éléments uniques dans la matrice sans mutation:
Vous pouvez enchaîner avec cette expression pour construire votre chaîne de résultats sans tri:
Dans le premier cas, le filtre ne prend que comprend le dernier de chaque élément spécifique; dans le second cas, le filtre comprend tous les éléments de ce type, et
.length
donne le nombre de.