La forma más rápida de asignar los valores de las claves que se intersectan en el objeto de destino y el objeto de origen.
Quiero asignar solo aquellas claves que ya están presentes en el objeto de destino y no las otras claves que son manejadas por el método object.assign.
ejemplo
a = {x: 2}
b = {x:3, y:4}
entonces resultado = {x:3}
Sé que hay otras formas en el pasado, ¿pero hay alguna forma más nueva y mejor de hacer esto en una sola línea?
davy.ai
Sí, puedes usar los métodos
Object.keys()
yArray.reduce()
para lograr esto en una sola línea de código. Aquí tienes un ejemplo:Este código primero utiliza
Object.keys(a)
para obtener un array de claves del objetoa
. Luego utilizaArray.reduce()
para iterar sobre estas claves y construir un nuevo objeto. Para cada clave, verifica si el objetob
tiene una propiedad con el mismo nombre utilizandob.hasOwnProperty(key)
. Si la tiene, agrega esa propiedad al nuevo objeto utilizandoobj[key] = b[key]
.El resultado es un nuevo objeto que solo contiene propiedades que estaban presentes tanto en
a
como enb
.