Quiero asignar solo aquellas claves que ya están presentes en el objeto de destino y no las otras claves que realiza el método object.assign.
example a = { x: 2} b = {x:3, y:4} then result = {x:3}Sé que hay otras formas en el pasado, pero ¿hay alguna forma nueva y mejor de hacer esto como en una línea?
Puede reducir las claves del objeto de target a un nuevo objeto tomando los valores del obj si existen:
const fn = (target, obj) => Object.keys(target) .reduce((acc, key) => key in obj ? { ...acc, [key]: obj[key] } : acc , {}) const a = { x: 2} const b = { x:3, y:4 } const result = fn(a, b) console.log(result)Creo que la forma más rápida es:
for (let key in b) { if (a[key] === undefined) { delete b[key]; } }