Lodash | Método _.cloneDeep()

El método _.cloneDeep() se utiliza para crear una copia profunda del valor, es decir, clona recursivamente el valor. Este método es similar al método _.clone().

Sintaxis: 

_.cloneDeep( value )

Parámetros: este método acepta un solo parámetro como se mencionó anteriormente y se describe a continuación:  

  • valor: este parámetro contiene el valor que debe clonarse recursivamente.

Valor de retorno: este método devuelve el valor de clonación profunda.

Ejemplo 1: Clonación de objetos simples  

Javascript

const _ = require('lodash');
   
var obj = {
    x: 23
};
   
// Deep copy
var deepCopy = _.cloneDeep(obj);
   
console.log('Comparing original with'
    + ' deep ', obj === deepCopy);
   
obj.x = 10; // Changing original value
   
console.log('After changing original value');
   
console.log("Original value ", obj);
   
console.log("Deep Copy value ", deepCopy);

Producción: 

Comparing original with deep  false
After changing original value
Original value  { x: 10 }
Deep Copy value  { x: 23 }

Ejemplo 2: Clonación de objeto complejo  

Javascript

const _ = require('lodash');
    
var obj = [{  x: 1 }, {y: 2}];
   
// Deep copy
var deepCopy = _.cloneDeep(obj);
    
console.log('Comparing original with deep ',
            obj[0] === deepCopy[0]);
    
// Changing original value
obj[0].x = 10;
    
// Values after changing original value
console.log("After changing original value");
    
console.log("Original value ", obj);
    
console.log("Deep Copy value ", deepCopy);

Producción: 

Comparing original with deep  false
After changing original value
Original value  [ { x: 10 }, { y: 2 } ]
Deep Copy value  [ { x: 1 }, { y: 2 } ]

Entonces, aquí hemos visto que después de cambiar el valor original, la copia profunda de los valores no cambió porque _.cloneDeep() copió recursivamente el valor profundamente.

Nota: Esto no funcionará en JavaScript normal porque requiere que se instale la biblioteca lodash.

Referencia: https://lodash.com/docs/4.17.15#cloneDeep
 

Publicación traducida automáticamente

Artículo escrito por Dharmendra_Kumar y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *