如何使用最新的Javascript合并两个对象,以使键从一个映射到另一个,而在第二个键中没有额外的键?

问题描述 投票:0回答:1

对象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));
javascript
1个回答
0
投票

您可以使用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);

0
投票

您可以使用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)
© www.soinside.com 2019 - 2024. All rights reserved.