JavaScript Clonage superficiel d'un tableau


Exemple

Parfois, vous devez travailler avec un tableau tout en veillant à ne pas modifier l'original. Au lieu d'une méthode clone , les tableaux ont une méthode de slice qui vous permet d'effectuer une copie superficielle de n'importe quelle partie d'un tableau. Gardez à l'esprit que cela ne clone que le premier niveau. Cela fonctionne bien avec les types primitifs, comme les nombres et les chaînes, mais pas les objets.

Pour cloner un tableau en profondeur (par exemple, avoir une nouvelle instance de tableau mais avec les mêmes éléments), vous pouvez utiliser le one-liner suivant:

var clone = arrayToClone.slice();

Cela appelle la méthode JavaScript Array.prototype.slice . Si vous passez des arguments à slice , vous pouvez obtenir des comportements plus complexes qui créent des clones peu profonds d'une partie seulement d'un tableau, mais pour notre usage, il suffit d'appeler slice() pour créer une copie superficielle de l'ensemble du tableau.

Toutes les méthodes utilisées pour convertir des objets de type tableau en tableau sont applicables pour cloner un tableau:

6
arrayToClone = [1, 2, 3, 4, 5];
clone1 = Array.from(arrayToClone);
clone2 = Array.of(...arrayToClone);
clone3 = [...arrayToClone] // the shortest way
5.1
arrayToClone = [1, 2, 3, 4, 5];
clone1 = Array.prototype.slice.call(arrayToClone);
clone2 = [].slice.call(arrayToClone);