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.
No answers yet.
Inicia sesión para dejar una respuesta
Blogs
Seguridad de aplicaciones Go: top 10 vulnerabilidades para principiantes
Documentación del proyecto PHP: guía completa de la A a la Z
C# vs Python para backend: qué elegir para un principiante en 2024
Secretos de C# que los manuales callan: mejores prácticas 2025