如何合并两个 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}
希望对你有帮助!!
如果我有两个对象,如果源中也存在相同的属性,如何合并它们并保留目标中的属性值?对象的结构可以不同。最好使用 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}
希望对你有帮助!!