【发布时间】:2018-07-13 02:19:06
【问题描述】:
我的要求是比较两个对象并将更新的值从第二个对象复制到第一个对象中。 例如:
$scope.obj1={"id" : 1, "name" : "java"}
$scope.obj2={"id" : 1, "name" : "java4you", "gender" : "male"}
compare(destination, bj1, obj2);
目标变量输出:
{"id" : 1, "name" : "java4you"}
以上两个对象包含相同的键但值不同。我必须比较 obj1 和 obj2 并使用匹配的 obj2 值进行更新
【问题讨论】:
-
你想用相同的键覆盖和返回属性?
-
在更新“name”字段之前是否需要比较id?如果不是(id 总是相同的)你可以做 angular.extend(destination, obj1, obj2) 这是一个浅拷贝。输出将是 {"id" : 1, "name" : "java4you"}
-
不完全是@user4219031。
extend将包括"gender":"male"。 -
@Mike McCaughan 是正确的,如果我使用扩展复制对象属性“性别”:“男性”也添加到我的目标对象。我只想用 obj1 更新 obj2 中的匹配值。我不想要与 obj1 不匹配的其他键、值对。
标签: javascript angularjs