_.merge
en Lodash
Lodash proporciona el método _.merge
para realizar un merge profundo entre dos objetos. Este método combina las propiedades de los objetos origen con el objeto destino, sobreescribiendo los valores del destino cuando hay conflicto, pero solo a nivel de las propiedades individuales o más profundas.
const _ = require('lodash');
const objeto1 = {
nombre: 'Juan',
detalles: {
edad: 30,
direccion: {
ciudad: 'Madrid'
}
}
};
const objeto2 = {
detalles: {
direccion: {
ciudad: 'Barcelona',
pais: 'España'
}
}
};
const resultado = _.merge(objeto1, objeto2);
console.log(resultado);
Resultado:
{
nombre: 'Juan',
detalles: {
edad: 30,
direccion: {
ciudad: 'Barcelona',
pais: 'España'
}
}
}
En este ejemplo, Lodash fusiona los objetos de forma profunda. La propiedad direccion.ciudad
se sobrescribe con el valor del segundo objeto, mientras que la nueva propiedad direccion.pais
se agrega.
1. Combinación de arreglos y objetos anidados:
const objA = { data: [1, 2], info: { active: true } };
const objB = { data: [3], info: { status: 'complete' } };
const resultado = _.merge(objA, objB);
console.log(resultado);
Resultado:
{
data: [3], // Los arreglos no se combinan, se sobrescriben
info: {
active: true,
status: 'complete'
}
}
2. Múltiples niveles de profundidad:
const objA = { a: { b: { c: 1 } } };
const objB = { a: { b: { d: 2 } } };
const resultado = _.merge(objA, objB);
console.log(resultado);
Resultado:
{
a: {
b: {
c: 1,
d: 2
}
}
}
Puedes encontrar más detalles en la documentación oficial de Lodash.
Jorge García
Fullstack developer