对象A:
let form= {
first_name: "",
last_name: "",
avatar: ""
}
对象B
let profile {
first_name: "John",
last_name: "Doe",
avatar: "https://image.cdn.com",
....100 other fields
}
基本上我应该结束于:
newObject: {
first_name: "John",
last_name: "Doe",
avatar: "https://image.cdn.com"
}
在第二个对象中没有那些多余的项目。
我尝试过此操作,但它仍然返回我不想要的额外键:
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: ""
}
console.log(_.merge(form, profile));
您可以使用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);
您可以使用Object.keys()
和Array.map()
遍历对象
let form= {
first_name: "",
last_name: "",
avatar: ""
}
let profile = {
first_name: "John",
last_name: "Doe",
avatar: "https://image.cdn.com",
dummy: 'Dummy'
}
let newObject = Object.keys(form).map(key => profile[key])
console.log(newObject)