En supposant que j'ai les éléments suivants:
var array =
[
{"name":"Joe", "age":17},
{"name":"Bob", "age":17},
{"name":"Carl", "age": 35}
]
Quelle est la meilleure façon d'obtenir un tableau de tous les âges distincts, de sorte que j'obtienne un tableau de résultats de:
[17, 35]
Existe-t-il un moyen de structurer alternativement les données ou une meilleure méthode de telle sorte que je n'aurais pas à parcourir chaque tableau en vérifiant la valeur de "age" et en vérifiant par rapport à un autre tableau son existence, et en l'ajoutant sinon?
S'il y avait un moyen, je pourrais simplement retirer les âges distincts sans répéter ...
La manière actuellement inefficace que je voudrais améliorer ... Si cela signifie qu'au lieu de "tableau" étant un tableau d'objets, mais une "carte" d'objets avec une clé unique (c'est-à-dire "1,2,3") qui serait d'accord aussi. Je cherche juste le moyen le plus efficace en termes de performances.
Voici comment je le fais actuellement, mais pour moi, l'itération semble juste minable pour l'efficacité même si cela fonctionne ...
var distinct = []
for (var i = 0; i < array.length; i++)
if (array[i].age not in distinct)
distinct.push(array[i].age)
Set
objet et map
s sont inutiles. Ce travail ne prend qu'une .reduce()
étape simple .