Olá, Wilson!
Pelo que entendi, você utilizou a função map
para localizar uma chave e valor em um objeto, certo?
No código que você compartilhou, você está utilizando a função map
para percorrer a lista de objetos dadosCliente
e verificar se o valor da chave "nome"
é igual a "Cecelia"
. Se for, você imprime o índice e o objeto correspondente.
No entanto, diferentemente do find
, o map
retorna um novo array com os resultados de uma função aplicada a cada elemento do array original, mas você não está retornando nada dentro da função map
. Além disso, você está utilizando console.log
dentro da função map
, o que não é recomendado.
Uma forma mais adequada de fazer essa busca utilizando a função map
seria retornar um novo array com os objetos que correspondem ao critério de busca. Por exemplo:
function search(list, key, name) {
return list.map((value, index) => {
if (value[key] === name) {
return { index, value };
}
return null;
}).filter(obj => obj !== null);
}
const results = search(dadosCliente, "nome", "Cecelia");
console.log(results);
Nesse exemplo, a função search
retorna um novo array results
contendo os objetos que correspondem ao critério de busca. Se nenhum objeto for encontrado, o array será vazio.
Se tiver alguma dúvida, é só me dizer. Bons estudos!
Espero ter ajudado e bons estudos!