Muitas vezes, há momentos em que queremos excluir todos os elementos de uma matriz, como opção, temos uma lista de tarefas e queremos excluir todas as tarefas ao mesmo tempo.
Considere a seguinte lista de elementos:
let items = ["tea", "coffee", "milk"];
Para remover todos os elementos de uma matriz, definimos seu valor como uma matriz vazia
items = [];
Isso funciona bem e você verá que este exemplo é usado constantemente. Mas há um problema com isso ...
:
let items = ["tea", "coffee", "milk"];
let copy = items;
copy , copy items.
console.log(items);
console.log(copy);
.
, - , , , .
copy[2] = "oranges";
console.log(items);
console.log(copy);
items, , , :
items = [];
, items copy
console.log(items);
console.log(copy);
, items , copy .
, items = [], , copy.
, (array), (object), - , , , .
, , array = [], [] — , .
. obj = {name: 'David'}, obj , , .
let obj = { name: 'David' };
let newObj = obj;
console.log(obj);
console.log(newObj);
obj = null;
console.log(obj);
console.log(newObj);
:
- 0:
let items = ["tea", "coffee", "milk"];
let copy = items;
console.log(items);
console.log(copy);
items.length = 0;
console.log(items);
console.log(copy);
- splice :
let items = ["tea", "coffee", "milk"];
let copy = items;
console.log(items);
console.log(copy);
items.splice(0, items.length);
console.log(items);
console.log(copy);
, , , items = [];
:
Não devemos criar links adicionais para uma matriz ou objeto, pois isso pode levar a um resultado indesejável no futuro. Se você tiver certeza de que não há referências (* e não aparecerá) à matriz original que precisamos limpar, então você pode usar array = [] para limpá-la; caso contrário, use um dos dois métodos acima para limpar a matriz.
Vamos melhorar a web.