1
resposta

Não entendi direito essa parte do código

const existe = itens.find( elemento => elemento.nome === nome.value )

Alguem poderia me explicar o porque o objeto todo está sendo armazenado. Esse teste de comparação como retorno da Arrow function ficou muito confuso para mim.

Obrigado

1 resposta

Quando o método find() encontra um objeto que atende a essa condição, ele retorna esse objeto inteiro. Isso ocorre porque o método find() foi projetado para retornar o primeiro elemento que atende à condição especificada, e não apenas a propriedade correspondente.

Portanto, quando o código armazena o resultado em uma variável chamada existe, ele está armazenando o objeto inteiro que foi encontrado, e não apenas a propriedade nome.

Se você quiser armazenar apenas a propriedade nome do objeto encontrado, você pode modificar o código para:

const existe = itens.find( elemento => elemento.nome === nome.value )?.nome;

Nesse caso, o operador de encadeamento opcional ?. é usado para verificar se o objeto foi encontrado antes de tentar acessar a propriedade nome. Se o objeto não foi encontrado, o valor de existe será undefined. Se o objeto foi encontrado, o valor de existe será a propriedade nome do objeto encontrado.