Como Remover Valores Nulos e Indefinidos de Arrays em JavaScript
Ao processar dados vindos de APIs, formulários ou bancos de dados, é comum receber arrays poluídos com valores vazios ou inválidos. A forma mais performática e concisa de limpar esses elementos em JavaScript é utilizando o método Array.prototype.filter() combinado com o construtor global Boolean.
JavaScript
// Array original com diversos tipos de dados falsy e válidos
const dadosBrutos = ['Servidor 01', null, '192.168.1.1', undefined, '', 'Online', NaN, 0, false];
// Remoção rápida de todos os valores falsy (null, undefined, "", NaN, false, 0)
const dadosLimpos = dadosBrutos.filter(Boolean);
console.log(dadosLimpos);
// Saída: ['Servidor 01', '192.168.1.1', 'Online']
// Caso precise PRESERVAR o número 0 e o boolean false, use uma função de checagem explícita:
const limpoComExcecoes = dadosBrutos.filter(item => item !== null && item !== undefined && item !== '' && !Number.isNaN(item));
console.log(limpoComExcecoes);
// Saída: ['Servidor 01', '192.168.1.1', 'Online', 0, false]
- Mecanismo do
filter(Boolean): O JavaScript passa cada elemento do array para o construtorBoolean(item). Elementos que avaliam parafalse(null,undefined,"",NaN,0efalse) são removidos automaticamente. - Atenção aos valores numéricos e booleanos: O truque
filter(Boolean)remove o número0e o booleanofalse. Se esses valores forem válidos na sua regra de negócio, prefira a filtragem explícita (item != null). - Performance Imutável: O método
.filter()não altera o array original (não causa mutação in-place) e cria um novo array apenas com os elementos válidos, garantindo código limpo e previsível. - Compatibilidade e Imutabilidade: Funciona nativamente em todas as versões do JavaScript (Node.js e browsers) sem a necessidade de bibliotecas externas como Lodash.
