Varios métodos de fusión de objetos en js
Nuevo método de objeto en Es6: Object.assign ()
1. Uso básico: el
método Object.assign se utiliza para fusionar objetos, copiar todas las propiedades enumerables del objeto de origen (origen) al objeto de destino (destino).
const obj1 = {
a: 1
}
const obj2 = {
b: 2
}
Object.assign(obj1, obj2)
console.log(obj1); // { a: 1, b: 2 }
- De hecho, esto puede fusionar dos objetos diferentes, pero el siguiente código no tiene el efecto esperado.
const obj1 = {
id: 1,
name: 'james'
}
const obj2 = {
id: 2,
name: 'curry'
}
Object.assign(obj1, obj2, obj2)
console.log(obj1);
- La salida final es
{ id: 2, name: 'curry' }
- Solo se sobrescribe el objeto obj2, es decir, el objeto obj1, porque Object.assign () especifica que si el objeto fusionado tiene uno o más atributos con el mismo nombre, entonces el último objeto sobrescribirá el objeto anterior.
El método merge () en lodash
const _ = require('lodash')
const obj1 = {
a: 1
}
const obj2 = {
b: 2
}
_.merge(obj1, obj2)
console.log(obj1); // { a: 1, b: 2 }
- De manera similar, si hay una o más de las mismas propiedades en un objeto, el último objeto sobrescribirá al objeto anterior.