Avatar ·

La forma más eficiente de clonar profundamente un objeto en JavaScript

```html

¡Hola a todos! Soy nuevo en JavaScript y me encontré con un problema al copiar objetos. Necesito crear una copia completamente independiente de un objeto para que los cambios en la copia no afecten al original. Pero la asignación normal no funciona: la copia simplemente hace referencia al mismo objeto.

Aquí hay un ejemplo de mi código:

const original = {
  name: "Алиса",
  age: 30,
  address: {
    city: "Москва",
    zip: 101000
  },
  hobbies: ["чтение", "плавание"]
};

// Intento copiar
const copy = original;
copy.name = "Боб";
copy.address.city = "Санкт-Петербург";

console.log(original.name); // "Боб" — ¡uy, cambió!
console.log(original.address.city); // "Санкт-Петербург" — ¡también cambió!

Probé usar Object.assign() y el operador spread {...obj}, pero solo crean una copia superficial. Los objetos y arrays anidados siguen estando vinculados. Por ejemplo:

const copy2 = {...original};
copy2.address.city = "Казань";
console.log(original.address
```