Вы можете использовать Object.assign()
или оператор распространения ES6 для создания нового объекта
let profile= {
first_name: "John",
last_name: "Doe",
avatar: "https://image.cdn.com",
key1: 1,
key2: 2,
key: 3,
}
let form= {
first_name: "",
last_name: "",
avatar: ""
}
let output = { ...form, ...profile };
console.log(output);
И если вы не хотите переопределять значения в исходном объекте, если значение не ложно / пусто, вы можете сделать что-то вроде
let profile= {
first_name: "John",
last_name: "Doe",
avatar: "https://image.cdn.com",
key1: 1,
key2: 2,
key: 3,
}
let form= {
first_name: "Adam",
last_name: "",
avatar: ""
}
const output = Object.keys(form).reduce((prev, key) => {
prev[key] = form[key] || profile[key];
return prev;
}, {});
console.log(output);