我的要求是比较两个对象并将更新的值从第二个对象复制到第一个对象中。 例如:
$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 值进行更新
最佳答案
您可以创建 obj1
的副本使用Object.assign()
在一个新变量中,destination
并迭代 obj2
的每个键使用Object.keys()
和array#forEach
并检查 key 是否存在于destination
中,如果存在,则更新 destination
中的值来自 obj2
的值
var obj1={"id" : 1, "name" : "java"},
obj2={"id" : 1, "name" : "java4you", "gender" : "male"}
var updateObjectValue = (obj1, obj2) => {
var destination = Object.assign({}, obj1);
Object.keys(obj2).forEach(k => {
if(k in destination) {
destination[k] = obj2[k];
}
});
return destination;
}
console.log(updateObjectValue(obj1, obj2));
关于javascript - 更新两个 JavaScript 对象中匹配的键值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48585086/