嗨我只是想知道是否有一个简单的方法,或者如果你知道两个对象中的键值对的顺序是相同的,如何在角度中比较两个对象有任何很好解释的例子。如果任何项目不同,只需将不同的项目移动到新对象中即可。
我知道有angular.equals(obj1, obj2)
之类的东西会返回一个布尔值。然而,如果两个对象不同,我会感兴趣的是取对并将它们放在一个新对象中。
如果有人知道这样做的快捷方式,那将会有很大的帮助。
谢谢
答案 0 :(得分:1)
比较两个相同的对象以进行更改,并将更改的键值对放入新对象中。
$scope.individualItemsToUpdate = {};
angular.forEach($scope.objectWithChanges, function (value, key) {
if (value != $scope.originalObject[key]) {
$scope.individualItemsToUpdate[key] = value;
}
});
答案 1 :(得分:0)
当你说你知道按键的顺序时,这意味着你可以有一个列表吗?如果是这样,你可以这样做:
var keys = ['val1', 'val2', 'val3'],
difference = {};
keys.map(function(key){
if (obj1[key] && !obj2[key]) {
difference.push(obj1[key]);
} else if (obj1[key] && !obj2[key]) {
difference.push(obj1[key]);
}
});