如何使用AngularJS比较两个JSON对象?

4
我有两个JSON对象。
 $scope.car1={"Sedan":{"Audi":["A4","A3"]},"Hatchback":{"Maruthi":["Swift"]}}; 
  $scope.car2={"Hatchback":{"Maruthi":["Swift"]},"Sedan":{"Audi":["A3","A4"]}}; 

我想比较这两个对象。我尝试了以下代码:

var a=angular.equals($scope.car1,$scope.car2);

自从angular.equals需要进行深层比较,因此它也关心数据的顺序。是否有任何方法可以忽略顺序比较对象?
2个回答

2

'对象'没有顺序。angular.equals将使用它们的键比较值。


"Sedan"键的值"Audi"具有不同的数组(这些数组的顺序不同)。 - Tarun Dugar
从技术上讲,Tarun,你是对的,但这仍然是他的问题:给定两个数组,如何无序地(注意:递归地)比较它们。 - Tomer W
好的,我以为他在比较对象而不是数组。我的错。 - Tarun Dugar

1
实现一个自定义的“递归均衡器”,以区分数组是否为关联数组:
对于关联数组 => 均衡键, 对于普通数组 => 排序数组和均衡元素。

编写函数myEqual()在这个Plunker上

在这种情况下,我不需要使用underscore.js。我需要纯JavaScript或AngularJS。 - J.Joseph
好的,你可以很容易地实现另一个, 等我有时间时,我会发布一些代码。 - Tomer W
JavaScript 中没有关联数组。 - charlietfl

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接