Esvaziar um Array em JavaScript
- Definir array para Nova Matriz de Tamanho Zero
-
Utilize a propriedade
length
para Esvaziar um Array em JavaScript -
Utilize o
splice()
Método para Esvaziar um Array em JavaScript -
Utilize o
pop()
Método para Esvaziar um Array em JavaScript - Modificar métodos nativos para esvaziar um array em JavaScript
O array é uma colecção de artigos armazenados num array conveniente e indexado. E se quisermos esvaziar um array que contém itens múltiplos?
Este tutorial introduz diferentes métodos de como esvaziar um array em JavaScript.
Definir array para Nova Matriz de Tamanho Zero
É a forma mais rápida. Isto irá definir a array para uma nova array vazia.
let Arr = [1, 2, 3, 4];
Arr = [];
É simples se não tiver nenhuma referência de outros locais ao array original. Estas referências não serão actualizadas se o fizer, e esses locais continuarão a utilizar a array antiga. Isto significa que as referências ao conteúdo do array anterior ainda são mantidas na memória, levando a fugas de memória.
Só utilizar isto se fizer referência à array pela sua variável original Arr
.
O exemplo de código abaixo mostra o problema que pode encontrar ao utilizar este método:
let Arr1 = [1, 2, 3, 4, 5, 6];
let Arr2 = Arr1;
Arr1 = [];
console.log({Arr1, Arr2});
Resultado:
{
Arr1: [],
Arr2: [1, 2, 3, 4, 5, 6]
}
Utilize a propriedade length
para Esvaziar um Array em JavaScript
A propriedade do comprimento de um array é uma propriedade de leitura/escrita, pelo que também funciona quando se utiliza o modo estrito do ECMAScript 5.
Arr1.length = 0
Esta forma tem uma vantagem porque apaga tudo no array, o que tem impacto noutras referências. Se tivermos duas referências ao mesmo array, apagamos o conteúdo do array utilizando Arr1.length = 0
, ambas as referências irão agora apontar para o mesmo array vazio.
Exemplo:
let foo1 = [1, 2, 3];
let bar1 = [1, 2, 3];
let foo2 = foo1;
let bar2 = bar1;
foo1 = [];
bar1.length = 0;
console.log({foo1, bar1, foo2, bar2});
Resultado:
{
bar1: [],
bar2: [circular object Array],
foo1: [],
foo2: [1, 2, 3]
}
Utilize o splice()
Método para Esvaziar um Array em JavaScript
O método array.splice()
é um método incorporado em JavaScript, que é utilizado para adicionar/remover itens de/para um array e devolve os itens removidos.
let Arr1 = ['Tomato', 'Letcuce', 'Spinash', 'Cucumber'];
Arr1.splice(2, 0, 'Lemon', 'Kiwi')
console.log(Arr1);
Resultado:
["Tomato", "Letcuce", "Lemon", "Kiwi", "Spinash", "Cucumber"]
Para esvaziar o array:
Arr1.splice(0, Arr1.length);
console.log(Arr1);
Resultado:
[]
Remove todos os elementos do array e limpa o array original.
Utilize o pop()
Método para Esvaziar um Array em JavaScript
O método pop()
remove o último elemento de um array e devolve esse elemento. E alterará o comprimento do array.
let vegetables = ['broccoli', 'cauliflower', 'cabbage', 'kale', 'tomato'];
console.log(vegetables.pop());
console.log(vegetables);
Resultado:
tomato
(4) ["broccoli", "cauliflower", "cabbage", "kale"]
Fazemos um loop no array, colocamos o elemento do array em cada loop, e finalmente obtemos o array vazio.
let Arr1 = [1, 2, 3, 4, 5];
for (let i = Arr1.length; i > 0; i--) {
Arr1.pop();
}
console.log(Arr1);
Resultado:
[]
Esta solução não é muito concisa, e é também a solução mais lenta.
Modificar métodos nativos para esvaziar um array em JavaScript
A última técnica desta lista pode ser utilizada com todos os métodos acima; o JavaScript permite-nos modificar e utilizar métodos nativos para alargar as suas capacidades. Podemos utilizar a função Array.proptotype.remove
para modificar o processo.
No exemplo abaixo, utilizamos o método splice()
, que utilizámos no exemplo anterior. Agora, podemos utilizar o processo chamando-o como a função arr.remove()
.
var arr = [1, 2, 3, 4, 5, 6];
Array.prototype.remove = Array.prototype.remove || function() {
this.splice(0, this.length);
};
arr.remove();
console.log(arr);
Resultado:
[]