Como remover um elemento específico de um array em JavaScript: 5 melhores maneiras

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Como remover um elemento específico de um array em JavaScript: guia detalhado com exemplos

\n\n

Olá, colega desenvolvedor! Se você já escreveu em JavaScript, certamente já se deparou com a situação em que precisa remover um elemento específico de um array. Parece uma tarefa simples, mas iniciantes (e até programadores experientes) muitas vezes ficam confusos: splice? filter? Ou talvez delete? Ou escrever a própria solução do zero?

\n\n

A pergunta "How can I remove a specific item from an array in JavaScript?" é uma das mais populares no Stack Overflow, com milhões de visualizações. E não é por acaso: arrays são a base do trabalho com dados em JS, e saber como limpá-los corretamente é uma habilidade indispensável.

\n\n

Neste artigo, vamos explorar 5 maneiras comprovadas de remover um elemento de um array em JavaScript. Você descobrirá qual método é mais rápido, qual é mais limpo para leitura e em quais situações cada um é melhor aplicado. Vamos lá!

\n\n

1. Método splice() — o clássico

\n\n

Vamos começar com a maneira mais popular — splice(). Este método modifica o array original, removendo, substituindo ou adicionando elementos. Para remover um único elemento, a sintaxe é:

\n\n
array.splice(index, 1);
\n\n

O primeiro parâmetro é o índice do elemento a ser removido, o segundo é a quantidade de elementos a serem removidos (1 significa que removemos apenas um).

\n\n

Exemplo:

\n\n
let fruits = ['maçã', 'banana', 'pera', 'laranja'];\n\n// Removendo 'banana' (índice 1)\nfruits.splice(1, 1);\n\nconsole.log(fruits); // ['maçã', 'pera', 'laranja']
\n\n

Importante: splice() modifica o array original. Se você precisar de uma cópia, primeiro faça let copy = [...array].

\n\n

Quando usar: quando você sabe exatamente o índice do elemento. Ideal para remoção por posição.

\n\n

2. Combinação indexOf() + splice() — remoção por valor

\n\n

E se não soubermos o índice, mas soubermos o valor? Aqui, indexOf() nos ajuda — ele encontra o primeiro índice do elemento com o valor fornecido (ou retorna -1 se o elemento não existir).

\n\n
let numbers = [10, 20, 30, 40, 50];\nlet itemToRemove = 30;\n\nlet index = numbers.indexOf(itemToRemove);\nif (index !== -1) {\n    numbers.splice(index, 1);\n}\n\nconsole.log(numbers); // [10, 20, 40, 50]
\n\n

Importante: este método remove apenas a primeira ocorrência. Se houver vários elementos iguais no array, os restantes permanecerão.

\n\n

Quando usar: quando você precisa remover um elemento específico do array por valor e tem certeza de que o elemento aparece apenas uma vez.

\n\n

3. Método filter() — para quem gosta de código limpo

\n\n

O método filter() é meu favorito pessoal. Ele não modifica o array original, mas cria um novo contendo apenas os elementos que passam no teste. Isso torna o código mais previsível e seguro.

\n\n
let numbers = [10, 20, 30, 40, 50];\nlet itemToRemove = 30;\n\nlet filteredNumbers = numbers.filter(num => num !== itemToRemove);\n\nconsole.log(filteredNumbers); // [10, 20, 40, 50]\nconsole.log(numbers); // [10, 20, 30, 40, 50] (original não foi alterado)
\n\n

Vantagem: remove todas as ocorrências do valor. Se houver dois números 30 no array, ambos desaparecerão.

\n\n

Desvantagem: cria um novo array, o que pode ser menos eficiente ao trabalhar com arrays muito grandes (mas para 99% dos casos, isso não é crítico).

\n\n

Quando usar: quando você precisa de imutabilidade (não alterar os dados originais) ou precisa remover todas as duplicatas.

\n\n

4. Operador delete — perigoso, mas rápido

\n\n

O operador delete remove uma propriedade de um objeto. Como um array também é um objeto, ele pode ser aplicado a arrays. Mas cuidado: ele deixa um "buraco" (um elemento vazio).

\n\n
let fruits = ['maçã', 'banana', 'pera'];                

Blogs

Book Recommendations