如何合并两个 Javascript 对象并忽略目标中的属性?

How to merge two Javascript objects and ignore properties which are in destination?

如果我有两个对象,如果源中也存在相同的属性,如何合并它们并保留目标中的属性值?对象的结构可以不同。最好使用 Angular JS 或 Underscore。 Lodash 无法使用。

示例:

obj1 = {"id": 1, "name": "john"}
obj2 = {"id": "2", "zip": "72623", "city": "London"}. //note id here is a string value where id in obj1 is a number

合并后,我希望obj1成为{"id": 1, "name": "john", "zip":"72623", "city": "London"}

我试过了:obj1 = angular.merge({}, obj1, obj2) 但 id 是“2”。

你可以使用 Object.assign() ...

例如:

obj1 = {"id": 1, "name": "john"}
obj2 = {"id": "2", "zip": "72623", "city": "London"}

const ob3 = Object.assign(obj1,obj2) 
//you get 
//{id: "2"
//name: "john"
//zip: "72623"
//city: "London"}

或者如果你这样做

 const ob3 = Object.assign(obj2,obj1);

 // {id: 1
 //zip: "72623"
// city: "London"
// name: "john"
//}

或使用展开运算符

const obj3 = {...obj1,...obj2}

或相反

 const obj3 = {...obj2,...obj1}

希望对你有帮助!!