Muito bem colocado.
Como toda funcionalidade, precisamos analisar e verificar a melhor solução para aquele escopo.
Em hipotese alguma um script vai ser "bala de prata". Tudo vai ter seu lado positivo e negativo.
Muito bem colocado.
Como toda funcionalidade, precisamos analisar e verificar a melhor solução para aquele escopo.
Em hipotese alguma um script vai ser "bala de prata". Tudo vai ter seu lado positivo e negativo.
E indo um pouco mais além, daria para criar vários índices para propriedades diferentes:
const users = [
{ age: 37, salary: 10000, name: "Moore Hampton" },
{ age: 25, salary: 30000, name: "Stephanie Clayton" },
{ age: 30, salary: 30000, name: "Pratt Cash" },
{ age: 21, salary: 1000, name: "Kenya Gould" },
{ age: 38, salary: 10000, name: "Dodson Romero" },
{ age: 34, salary: 1000, name: "Weiss Bush" },
{ age: 27, salary: 10000, name: "Myrtle Hatfield" },
{ age: 36, salary: 10000, name: "Bertie Spencer" },
{ age: 35, salary: 5000, name: "Fisher Arnold" },
{ age: 24, salary: 10000, name: "Susie Hebert" },
{ age: 37, salary: 10000, name: "Beth Lloyd" },
{ age: 24, salary: 10000, name: "Keisha Gilliam" },
{ age: 38, salary: 3000, name: "Rachel Schultz" },
{ age: 25, salary: 1500, name: "Jeanine Flores" },
{ age: 27, salary: 10000, name: "Jensen Maddox" },
{ age: 24, salary: 1500, name: "Callie Crawford" },
{ age: 22, salary: 3000, name: "Campbell Chase" },
{ age: 39, salary: 15000, name: "Collins Mercado" },
{ age: 38, salary: 10000, name: "Cantu Mcclure" },
{ age: 37, salary: 10000, name: "Duffy Buckley" },
{ age: 36, salary: 30000, name: "Suzette Navarro" },
{ age: 40, salary: 1000, name: "Aida Murray" },
{ age: 35, salary: 15000, name: "Alyssa Humphrey" }
];
function criarIndices(dados, ...propriedades) {
const indices = {};
// já deixa criado um índice para cada propriedade
for (const prop of propriedades) {
indices[prop] = {};
}
// para cada elemento, adiciona no respectivo índice de cada propriedade
for (const item of dados) {
for (const prop of propriedades) {
if (! indices[prop][item[prop]]) {
indices[prop][item[prop]] = []
}
indices[prop][item[prop]].push(item);
}
}
return indices;
}
const indices = criarIndices(users, 'age', 'salary');
console.log(indices.age[35]);
console.log(indices.salary[1000]);
Assim só precisa processar o array uma vez, e já deixa criado vários índices.
Eu não verifiquei se as propriedades existem em cada um dos items do array, então fica como exercício para o leitor :-)