1
resposta

[Dúvida] Object . keys()

Por que eu usaria o primeiro exemplo? o segundo me parece mais simples de entender e mais direto.

const chavesDoObjeto = Object.keys(cliente);

if(!chavesDoObjeto.includes('enderecos')) {
    console.error('ERRO. É necessario ter um endereço cadastrado.')
}

//---------------------------------------
//---------------------------------------

if(!'enderecos' in cliente) {
    console.error('ERRO. É necessario ter um endereço cadastrado.')
}
1 resposta

Olá Gilnei! Tudo certo?

Desculpa a demora em retorná-lo.

O primeiro exemplo é mais seguro e preciso do que o segundo. Embora possa parecer mais verboso, ele usa a função Object.keys para obter um array com todas as chaves do objeto cliente, e então verifica se o array inclui a chave "enderecos". Isso significa que ele verifica se a chave "enderecos" existe no objeto, independentemente do valor dela (por exemplo, se for undefined, null, false, 0, ou uma string vazia).

Por outro lado, o segundo exemplo verifica apenas se a string literal "enderecos" não é uma propriedade direta do objeto cliente. Isso significa que se a chave "enderecos" existir, mas seu valor for undefined, o segundo exemplo ainda considerará que a chave não existe no objeto e lançará o erro incorretamente.

Portanto, o primeiro exemplo é mais preciso e seguro, pois verifica se a chave existe independentemente do seu valor, enquanto o segundo exemplo pode levar a falsos negativos se a chave existir com um valor falso ou vazio.

Caso tenha ficado com alguma dúvida, não deixe de compartilhar!

Continue praticando e evoluindo na sua jornada.

Bons estudos e até mais!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. 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