【发布时间】:2020-07-05 17:58:13
【问题描述】:
如果我有两个对象,如果源中也存在相同的属性,如何合并它们并保留目标中的属性值?对象的结构可以不同。最好使用 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”。
【问题讨论】:
-
你试过传播运算符吗?看看这篇文章 - medium.com/@mwalterspieler_31762/…
-
使用
Object.keys(obj2).forEach(key => ...)遍历obj2 并编写您自己的代码来检查您是要附加还是跳过该属性。 -
把 obj2 放在 obj1之前?
标签: javascript angularjs typescript underscore.js