Muy a menudo hay momentos en los que queremos eliminar todos los elementos de una matriz, como opción, tenemos una lista de tareas y queremos eliminar todas las tareas al mismo tiempo.
Considere la siguiente lista de elementos:
let items = ["tea", "coffee", "milk"];
Para eliminar todos los elementos de una matriz, establecemos su valor en una matriz vacía
items = [];
Esto funciona bien, y encontrará que este ejemplo se usa constantemente. Pero hay un problema con esto ...
:
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 = [];
:
No debemos crear enlaces adicionales para una matriz u objeto, ya que esto puede conducir a un resultado no deseado en el futuro. Si está seguro de que no hay referencias (* y no aparecerá) a la matriz original que necesitamos borrar, entonces puede usar array = [] para borrarla, de lo contrario use cualquiera de los dos métodos anteriores para borrar la matriz.
Hagamos que la web sea mejor.