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
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
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.