Desvendando as verificações de vazio em JavaScript

Cover

Você já se deparou com situações em JavaScript em que precisa verificar se um array ou objeto está vazio? Certamente, pode ser um desafio saber qual abordagem utilizar para garantir uma verificação precisa.

Muitas vezes, técnicas comuns podem não fornecer os resultados esperados, levando a verificações incorretas. Neste artigo, vamos explorar diferentes métodos de verificação de vazio em arrays e objetos em JavaScript, destacando as armadilhas das abordagens comuns e apresentando as formas corretas de garantir uma verificação precisa.

Para iniciar, considere o exemplo apresentado na imagem abaixo e utilize-o como referência para a comparação com a explicação subsequente.

Boddy 01

Vamos começar desvendando os equívocos comuns em relação às verificações de vazio.

Verificações Incorretas:

  1. Uso de Operadores Ternários (?:): Utilizar expressões como const isNotEmptyArray = arrayReturnedFromApi ? true : false e const isNotEmptyObject = objectReturnedFromApi ? true : false pode ser tentador, porém, essas verificações sempre retornarão true para objetos e arrays, independentemente de estarem vazios ou não. Isso ocorre porque objetos e arrays são considerados "truthy" em JavaScript, mesmo quando vazios.

  2. Condicional Simples (if): Verificar se um array ou objeto existe simplesmente com if (arrayReturnedFromApi) ou if (objectReturnedFromApi) também não é uma abordagem eficaz para verificar se estão vazios. Essas condições sempre avaliarão como verdadeiras (true) pelo mesmo motivo mencionado anteriormente.

  3. Dupla Negação (!!): Utilizar if (!!arrayReturnedFromApi) e if (!!objectReturnedFromApi) é uma tentativa de converter explicitamente o valor para um booleano. No entanto, como os arrays e objetos são "truthy", a dupla negação os converte para true, não ajudando na verificação de vazio.

Verificações Corretas:

  1. Verificação de Comprimento (Array): Utilizar if (arrayReturnedFromApi.length) é uma maneira correta de verificar se um array está vazio. Se arrayReturnedFromApi.length for 0 (ou seja, o array está vazio), a condição será falsa; caso contrário, será verdadeira para arrays não vazios.

  2. Verificação de Chaves (Objeto): Para objetos, if (Object.keys(objectReturnedFromApi).length) é uma maneira correta de verificar se estão vazios. Object.keys(objectReturnedFromApi) retorna um array das chaves do objeto. Se o objeto estiver vazio, o comprimento desse array será 0, tornando a condição falsa.

Ao compreender essas abordagens corretas, você pode garantir verificações precisas de vazio em seus arrays e objetos em JavaScript, evitando armadilhas comuns e garantindo a integridade e eficácia do seu código.

Para finalizar, um alerta!

Ao tentar validar esse tipo de questão utilizando algum tipo de IA, como exemplificado no print abaixo, é possível que se obtenha informações confusas e imprecisas. Isso pode levar à implementação de abordagens problemáticas em seu código. Por isso, é sempre importante se pautar pela documentação oficial da linguagem ou tecnologia em questão, garantindo assim uma abordagem sólida e confiável.

Boddy 02