1
resposta

Alternativa: Função de localizar chave e valor com MAP

const dadosCliente = require('./data.json')

function Search(list, key, name){
    
    list.map((value, index)=>{
        
        value[key] == name ? console.log(`Index: ${index}\n\n`,value) : null
        
    
})}

Search(dadosCliente, "nome", "Cecelia")
1 resposta

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!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software