Supondo que tenho o seguinte:
var array =
[
{"name":"Joe", "age":17},
{"name":"Bob", "age":17},
{"name":"Carl", "age": 35}
]
Qual é a melhor maneira de obter uma matriz de todas as idades distintas, para que eu obtenha uma matriz de resultados de:
[17, 35]
Existe alguma maneira de estruturar alternativamente os dados ou um método melhor, de modo que não precise iterar através de cada matriz verificando o valor de "idade" e verificando se existe outra matriz em relação a outra matriz e adicioná-lo, se não?
Se houvesse alguma maneira, eu poderia retirar as idades distintas sem iterar ...
Atual maneira ineficiente que gostaria de melhorar ... Se isso significa que, em vez de "matriz" ser uma matriz de objetos, mas um "mapa" de objetos com alguma chave exclusiva (ou seja, "1,2,3") que seria ok também Estou apenas procurando a maneira mais eficiente de desempenho.
A seguir, é como eu faço isso atualmente, mas para mim, a iteração parece pouco exigente em termos de eficiência, mesmo que funcione ...
var distinct = []
for (var i = 0; i < array.length; i++)
if (array[i].age not in distinct)
distinct.push(array[i].age)
Set
objeto map
es são um desperdício. Este trabalho assume apenas uma .reduce()
etapa simples .