Avatar ·

Cómo crear una copia de un array en JavaScript, no una referencia a él

¡Hola a todos! Soy nuevo en JavaScript y me encontré con un problema que no puedo resolver. Cuando intento copiar un array, los cambios en el nuevo array afectan al original. Aquí hay un ejemplo: ```javascript let original = [1, 2, 3]; let copy = original; copy.push(4); console.log(original); // [1, 2, 3, 4] — ¡no quiero que original cambie! ``` Entiendo que `copy = original` no crea una copia, sino una referencia al mismo array. Pero, ¿cómo hago para que `copy` sea completamente independiente? Probé `copy = original.slice()`, y funcionó para números simples. Pero cuando tengo arrays anidados u objetos, los cambios aún afectan al original: ```javascript let nested = [[1, 2], [3, 4]]; let copyNested = nested.slice(); copyNested[0].push(5); console.log(nested[0]); // [1, 2, 5] — ¡cambió de nuevo! ``` ¿Cuál es el problema? ¿Cómo hago una "copia profunda" para que cualquier cambio en la copia no afecte al original? Preferiblemente con ejemplos para diferentes casos: arrays simples, arrays de objetos, múltiples niveles de anidamiento.