我有两个 json 对象,我想将它们相互比较。两者具有相同的值但顺序不同。现在我在 Angular 中发现了这个有用的函数,名为 angular.equals() ,它告诉我对象是否相同,但是我正在尝试找出一种方法,使该函数忽略对象的顺序值在。例如
对代码进行的编辑
var obj = {{name: "Product 1"}, {name:"Product 2"}, {name:"Product 3"}}
var obj2= {{name: "Product 2"}, {name:"Product 1"}, {name:"Product 3"}}
正如您所看到的,这些值是相同的,只是它们的顺序不同。有没有办法让 Angular 忽略顺序?
最佳答案
您可以使用 Lodash 的 _.isEqual()
示例:
var arr1 = ["Product 1", "Product 2", "Product 3"];
var arr2 = ["Product 2", "Product 1", "Product 3"];
_.isEqual(arr1, arr2);
对于纯javascript,还有另一个相关问题:How to compare arrays in JavaScript?
另一种选择是比较字符串:
var equal = JSON.stringify(arr1.sort()) == JSON.stringify(arr2.sort())
关于javascript - Angular Json 比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39948481/