Executando verificação de segurança...
1

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.

Carregando publicação patrocinada...
1

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 :-)