myData: { name: "", surname: "", family: { mother: "", father: "" }, age: "" } responseData: { name: "John", surname: "Doe", family: { mother: "Jennifer" } phone: "0123456789", weight: 88 } const pick = require('lodash/pick') const formKeys = Object.keys(this.myData) this.myData = pick(this.responseData, formKeys)Salida de mis datos:
{ name: "John", surname: "Doe", family: { mother: "Jennifer" } }quiero que sea asi
{ name: "John", surname: "Doe", family: { mother: "Jennifer", father: "" }, age: "" }Los campos myData nunca deben corromperse, si hay una clave que no coincide, mantenga ese campo tal como está en myData.
Quiero una coincidencia más profunda.
Usé lodash (pick) para esto. ¿Cómo si se hace con lodash? O como puedo hacerlo de otra forma?
Puede combinar como a continuación.
const myData = { name: "", surname: "", family: { mother: "", father: "", }, age: "", }; const responseData = { name: "John", surname: "Doe", phone: "0123456789", weight: 88, }; const merge = (obj1, obj2) => { const merged = { ...obj1 }; Object.keys(obj1).forEach((key) => { merged[key] = obj2[key] ?? obj1[key]; }); return merged; }; console.log(merge(myData, responseData));