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