Comment créer une copie d'un tableau en JavaScript, et non une référence à celui-ci ?
Bonjour à tous ! Je suis débutant en JavaScript et j'ai rencontré un problème que je n'arrive pas à résoudre. Quand j'essaie de copier un tableau, les modifications dans le nouveau tableau affectent l'original. Voici un exemple :
```javascript
let original = [1, 2, 3];
let copy = original;
copy.push(4);
console.log(original); // [1, 2, 3, 4] — je ne veux pas que original change !
```
Je comprends que `copy = original` ne crée pas une copie, mais une référence au même tableau. Mais comment faire pour que `copy` soit totalement indépendant ? J'ai essayé `copy = original.slice()`, et cela a fonctionné pour des nombres simples. Mais quand j'ai des tableaux imbriqués ou des objets, les modifications affectent toujours l'original :
```javascript
let nested = [[1, 2], [3, 4]];
let copyNested = nested.slice();
copyNested[0].push(5);
console.log(nested[0]); // [1, 2, 5] — encore modifié !
```
Quel est le problème ? Comment faire une copie "profonde" pour que toute modification dans la copie n'affecte pas l'original ? De préférence avec des exemples pour différents cas : tableaux simples, tableaux d'objets, etc.
No answers yet.
Connectez-vous pour laisser une réponse