比较AngularJS中的3个对象

时间:2016-12-13 05:10:12

标签: javascript angularjs

目前,AngularJS提供函数angular.equals(obj1, obj2)来比较2个对象,但我想做的是比较3个或4个对象,AngularJS有什么功能支持吗?

3 个答案:

答案 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;
&#13;
&#13;