Cómo Clonar Arrays y Objetos en Javascript

Si eres de los que ha intentado clonar objetos así const newObj = obj te invito a aprender todas las formas que actualmente existen para clonar o copiar objetos y arrays en javascript.

JSON Parse y Stringify

Está forma de clonar objetos y arrays es la más usada actualmente y no supone ninguna complicación, por lo que es la más usada actualmente.

// array clone const arr = [1, 2, 3, 4] const arr_clone = JSON.parse(JSON.stringify(arr)) // object clone const obj = { name: 'Francisco', lastname: 'Moncayo' } const obj_clone = JSON.parse(JSON.stringify(arr))
JSON Parse y Stringify para Clonar Arrays y Objetos

Object Assign

Este método sirve para clonar objetos y arrays, estos últimos (arrays) son convertidos en objetos con sus respectivos índices.

// array clone const arr = ['Francisco', 'Javier'] const arr_ clone = Object.assign({}, arr) // { 0: 'Francisco', 1: 'Javier' } // object clone const obj = { name: 'Francisco', lastname: 'Moncayo' } const obj_clone = Object.assign({}, obj) // { name: 'Francisco', lastname: 'Moncayo' }
Object.assign para Clonar Objetos

Spread Operator

Este operador es usado específicamente para destructurar objetos y arrays, pero también lo podemos usar para clonar arrays y objetos simples de la siguiente manera.

// array clone const arr = [1, 2, 3, 4] const arr_ clone = [ ...arr ] // object clone const obj = { name: 'Francisco', lastname: 'Moncayo' } const obj_clone = { ...obj }
Spread Operator para Clonar Arrays y Objetos Simples

Ten en cuenta que esta forma de clonar, no funciona para clonar arrays de objetos, ya que si modificamos un valor del objeto, este valor también será modificado en nuestra copia.