Comment copier un tableau en Javascript

Dans ce tutoriel nous allons découvrir comment copier un tableau en Javascript. Il existe deux types de copies pouvant être effectuées sur un tableau.

  • Simple copie
  • Copie en profondeur

 
 

Simple copie

Les tableaux en javascript ne sont que des objets avec des propriétés et des méthodes. Lorsque nous assignons directement un tableau à une autre variable, il est copié de manière superficielle.

Cela signifie qu’il ne fait que référencer le tableau, il ne copie pas tous les éléments.
 
Exemple:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
var tab1 = [1, 2, 3, 4];
//simple copie
var tab2 = tab1;
console.log(tab2); //[1, 2, 3, 4];
//Mettre à jour le tableau d'origine
tab1.push(5); //[1, 2, 3, 4, 5]
//La mise à jour est reflétée dans le tableau copié
console.log(tab2); //[1, 2, 3, 4, 5]
var tab1 = [1, 2, 3, 4]; //simple copie var tab2 = tab1; console.log(tab2); //[1, 2, 3, 4]; //Mettre à jour le tableau d'origine tab1.push(5); //[1, 2, 3, 4, 5] //La mise à jour est reflétée dans le tableau copié console.log(tab2); //[1, 2, 3, 4, 5]
var tab1 = [1, 2, 3, 4];

//simple copie
var tab2 = tab1;   
console.log(tab2); //[1, 2, 3, 4];

//Mettre à jour le tableau d'origine
tab1.push(5); //[1, 2, 3, 4, 5]

//La mise à jour est reflétée dans le tableau copié
console.log(tab2);  //[1, 2, 3, 4, 5]

 

Copie en profondeur

Nous pouvons concaténer le tableau d’origine avec un tableau vide et le renvoyer pour créer une copie profond.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
var tab1 = [1, 2, 3, 4];
//Copie en profondeur
var tab2 = [].concat(tab1);
console.log(tab2); //[1, 2, 3, 4];
//Mettre à jour le tableau d'origine
tab1.push(5); //[1, 2, 3, 4, 5]
//La mise à jour n'est pas reflétée dans le tableau copié
console.log(tab2); //[1, 2, 3, 4]
var tab1 = [1, 2, 3, 4]; //Copie en profondeur var tab2 = [].concat(tab1); console.log(tab2); //[1, 2, 3, 4]; //Mettre à jour le tableau d'origine tab1.push(5); //[1, 2, 3, 4, 5] //La mise à jour n'est pas reflétée dans le tableau copié console.log(tab2); //[1, 2, 3, 4]
var tab1 = [1, 2, 3, 4];

//Copie en profondeur
var tab2 = [].concat(tab1);  
console.log(tab2); //[1, 2, 3, 4];

//Mettre à jour le tableau d'origine
tab1.push(5); //[1, 2, 3, 4, 5]

//La mise à jour n'est pas reflétée dans le tableau copié
console.log(tab2);  //[1, 2, 3, 4]
QCM Javascript

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *