A remoção de elementos de uma array JavaScript é um paradigma de programação comum com o qual os desenvolvedores costumam se deparar. Assim como acontece com muitas coisas em JavaScript, isso não é tão simples quanto provavelmente deveria ser.
Existem várias maneiras de remover um ou mais elementos de uma array, então vamos analisar cada um deles um por um.
Removendo um elemento usando splice()
A função splice() é uma maneira versátil de remover, substituir e/ou adicionar elementos em uma array. Funciona de maneira semelhante às funções splice() em outras linguagens. Basicamente, você pega uma array e remove seletivamente partes dela. Os argumentos da função splice() é o ponto do índice para iniciar e o número de elementos a serem removidos.
Para remover um elemento de um índice específico em uma array:
1 2 3 4 5 6 7 8 9 10 11 12 |
var list = ["testeA", "testeB", "TesteC", "TesteD"]; list.splice(2, 1) // Começando na posição 2 do índice, remova um elemento //retorno: ["testeA", "testeB", "TesteD"] list.splice(2,2) // Começando na posição 2 do índice, remova dois elementos //retorno: ["testeA", "testeB"] |
Removendo um intervalo de elementos usando splice()
Apenas para garantir que você não perdeu o exemplo anterior, vale a pena destacar especificamente que você pode remover vários elementos consecutivos com splice().
Para remover vários elementos consecutivos de uma array:
1 2 3 4 5 6 7 |
var list = ["testeA", "testeB", "TesteC", "TesteD"]; list.splice(0, 2) // Começando na posição de índice 0, remova dois elementos //retorno: ["TesteC", "TesteD"] |
Removendo um elemento usando pop()
Os métodos de array push() e pop() funcionam no final de uma array. O método push() adicionará um elemento à array e o método pop() removerá um.
Para remover o último elemento de uma array:
1 2 3 4 5 6 |
var list = ["testeA", "testeB", "TesteC", "TesteD"]; list.pop(); //retorno: ["testeA", "testeB", "TesteC"] |
Para remover o primeiro elemento de uma array:
Removendo um elemento usando shift()
Os métodos de array shift() e unshift() funcionam no início de uma array em vez de no final de uma array, diferente de push() e pop(). O comando shift() removerá o primeiro elemento da array e o comando unshift() adicionará um elemento ao início da array.
1 2 3 4 5 6 7 |
var list = ["testeA", "testeB", "TesteC", "TesteD"]; list.shift(); //retorno: ["testeB", "TesteC", "TesteD"] |
Pesquisando e removendo um elemento específico por valor
O comando indexOf() retorna o primeiro índice no qual um determinado elemento pode ser encontrado na array ou -1 se não estiver presente. Isso pode ser usado junto com splice() para procurar um elemento e removê-lo, mesmo se você não souber onde ele está na array.
Vamos remover o elemento “testeB“:
1 2 3 4 5 |
var list = ["testeA", "testeB", "TesteC", "TesteD"]; list.splice( list.indexOf( 'testeB' ), 1 ); //Encontre a posição do índice de "testeB" e remova um elemento dessa posição |
Removendo vários elementos específicos
1 2 3 4 5 6 7 8 9 10 |
var list = ["testeA", "testeB", "TesteC", "TesteD"]; for( var i = list.length-1; i--; ){ if ( list[i] === 'testeB') list.splice(i, 1); if ( list[i] === 'TesteD') list.splice(i, 1); } //retorno: ["testeA", "TesteC"] |