La manière la plus efficace de cloner profondément un objet en JavaScript
Bonjour à tous ! Je suis débutant en JavaScript et j'ai rencontré un problème lors de la copie d'objets. J'ai besoin de créer une copie totalement indépendante d'un objet, afin que les modifications apportées à la copie n'affectent pas l'original. Mais l'affectation normale ne fonctionne pas — la copie fait simplement référence au même objet.
Voici un exemple de mon code :
```javascript
const original = {
name: "Алиса",
age: 30,
address: {
city: "Москва",
zip: 101000
},
hobbies: ["чтение", "плавание"]
};
// J'essaie de copier
const copy = original;
copy.name = "Боб";
copy.address.city = "Санкт-Петербург";
console.log(original.name); // "Боб" — oh, ça a changé !
console.log(original.address.city); // "Санкт-Петербург" — ça a aussi changé !
```
J'ai essayé d'utiliser `Object.assign()` et l'opérateur spread `{...obj}`, mais ils ne créent qu'une copie superficielle. Les objets et tableaux imbriqués restent liés. Par exemple :
```javascript
const copy2 = {...original};
copy2.address.city = "Казань";
console.log(original.address