目前,AngularJS提供函数angular.equals(obj1, obj2)
来比较2个对象,但我想做的是比较3个或4个对象,AngularJS有什么功能支持吗?
答案 0 :(得分:0)
if(angular.equals(obj1, obj2) && angular.equals(obj1, obj3)){
//threee objects are equal
}
答案 1 :(得分:0)
你可以做的另一件事(如果你想要一种快速而又脏的方式来比较对象),就是将对象转换为字符串并进行常规的javascript比较。
var object1 = {
test1: "aaa",
test2: "bbb",
test3: function () {
return "cccc";
}
}
var object2 = {
test1: "aaa",
test2: "bbb",
test3: function () {
return "cccc";
}
}
var object3 = {
test1: "aaa",
test3: function () {
return "cccc";
}
}
var isEqual1 = (JSON.stringify(object1) === JSON.stringify(object2));
var isEqual2 = (JSON.stringify(object2) === JSON.stringify(object3));
var isEqual3 = (JSON.stringify(object1) === JSON.stringify(object3));
console.log(isEqual1, isEqual2, isEqual3); // logs true false false
答案 2 :(得分:0)
工作演示:
var myApp = angular.module('myApp',[]);
myApp.controller('MyCtrl',function ($scope) {
var obj1 = {
key1: "value1",
key2: "value2",
key3: {a: "aa", b: "bb"}
}
var obj2 = {
key2: "value2",
key1: "value1",
key3: {a: "aa", b: "bb"}
}
var obj3 = {
key2: "value2",
key1: "value1",
key3: {a: "aa", b: "bb"}
}
$scope.object1 = obj1;
$scope.object2 = obj2;
$scope.object3 = obj3;
$scope.equals = angular.equals(obj1, obj2) && angular.equals(obj2, obj3);
});

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myApp" ng-controller="MyCtrl">
<br/>Obj1: {{object1}}
<br/>Obj2: {{object2}}
<br/>Obj3: {{object3}}
<br/><br/>Objects are equal ? {{equals}}
</div>
&#13;