¡Hola a todos!
Tengo la siguiente consulta. Leyendo el este artículo me encuentro con el siguiente código.
var arr = [1, 2, 3];
var arr2 = arr;
arr2.push(4);
console.log(arr2);
// [ 1, 2, 3, 4 ]
console.log(arr);
// [ 1, 2, 3, 4 ]
En este caso, cuando se implementa el método push()
a arr2
el cambio afecta también a arr
sin embargo cuando se implementa spread no ocurre eso, como se muestra en el siguiente ejemplo.
var arr = [1, 2, 3];
var arr2 = [...arr]; // like arr.slice()
arr2.push(4);
console.log(arr2);
// [ 1, 2, 3, 4 ]
console.log(arr);
// [ 1, 2, 3]
¿Alguien me podría explicar por qué ocurre esto? En el primer caso, si modifico arr2
no se debería modificar arr
.
Muchas gracias.
Saludos,
Federico.