Pourquoi ne pas supprimer tous les éléments du tableau en le réaffectant à []?


Très souvent, il y a des moments où nous voulons supprimer tous les éléments d'un tableau, en option, nous avons une liste de tâches et nous voulons supprimer toutes les tâches en même temps.


Considérez la liste d'éléments suivante:


let items = ["tea", "coffee", "milk"];

Pour supprimer tous les éléments d'un tableau, nous définissons sa valeur sur un tableau vide


items = [];

Cela fonctionne très bien et vous constaterez que cet exemple est utilisé en permanence. Mais il y a un problème avec ça ...



:


let items = ["tea", "coffee", "milk"];
let copy = items;

copy , copy items.



console.log(items); // ["tea", "coffee", "milk"]
console.log(copy); // ["tea", "coffee", "milk"]

.


, - , , , .


copy[2] = "oranges";
console.log(items); // ["tea", "coffee", "oranges"]
console.log(copy); // ["tea", "coffee", "oranges"]

items, , , :


items = [];

, items copy


console.log(items); // []
console.log(copy); // ["tea", "coffee", "oranges"]

, items , copy .


, items = [], , copy.


, (array), (object), - , , , .


, , array = [], [] — , .


. obj = {name: 'David'}, obj , , .


let obj = { name: 'David' };
let newObj = obj;
console.log(obj); // { name: 'David' }
console.log(newObj); // { name: 'David' }
obj = null;
console.log(obj); // null
console.log(newObj); // { name: 'David' }

:


  1. 0:
    let items = ["tea", "coffee", "milk"];
    let copy = items;
    console.log(items); // ["tea", "coffee", "milk"]
    console.log(copy); // ["tea", "coffee", "milk"]
    items.length = 0;
    console.log(items); // []
    console.log(copy); // []
  2. splice :
    let items = ["tea", "coffee", "milk"];
    let copy = items;
    console.log(items); // ["tea", "coffee", "milk"]
    console.log(copy); // ["tea", "coffee", "milk"]
    //   ,    0     
    items.splice(0, items.length);
    console.log(items); // []
    console.log(copy); // []

, , , items = [];


:


Nous ne devons pas créer de liens supplémentaires pour un tableau ou un objet, car cela pourrait conduire à un résultat indésirable à l'avenir. Si vous êtes sûr qu'il n'y a aucune référence (* et n'apparaîtra pas) au tableau d'origine que nous devons effacer, vous pouvez utiliser array = [] pour l'effacer, sinon utilisez l'une des deux méthodes ci-dessus pour effacer le tableau.


Améliorons le Web.

All Articles