angularjs - 比较 Angular 中的对象

标签 angularjs

是否可以在 Angular 中对两个对象进行“深度”比较?我想做的是比较每个键/值对。例如:

对象 1

{
   key1: "value1",
   key2: "value2",
   key3: "value3"
}

对象 2

{
   key1: "value1",
   key2: "newvalue",
   key3: "value3" 
}

我需要的是比较失败,因为只有一个键/值对不同。换句话说,所有键/值对必须完全匹配,否则失败。这是 Angular 中已经内置的东西吗?我确信如果我真的需要的话,我可以编写自己的服务,但我希望它已经内置了。类似于 angular.equals。

最佳答案

要比较两个对象,您可以使用:

angular.equals(obj1, obj2)

它进行深度比较并且不依赖于键的顺序 请参阅AngularJS DOCS还有一点Demo

var obj1 = {
  key1: "value1",
  key2: "value2",
  key3: {a: "aa", b: "bb"}
}

var obj2 = {
  key2: "value2",
  key1: "value1",
  key3: {a: "aa", b: "bb"}
}

angular.equals(obj1, obj2) //<--- would return true

关于angularjs - 比较 Angular 中的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20409712/

相关文章:

javascript - Angular 指令自己的范围

javascript - 我不知道为什么 ng-repeat 在我的代码中不起作用

c# - 将 C# 日期时间转换为 Angular 日期

javascript - Angular JS 中的 For Each 循环

javascript - Angular 模块加载

javascript - ui-router 和 angularjs 中的并行状态 - 防止重新加载

Angularjs setValidity 导致modelValue 不更新

AngularJS 对跨域资源执行 OPTIONS HTTP 请求

javascript - 控制angularjs如何将日期转换为json字符串

jquery - AngularJS 指令 - 避免 jQuery 式的架构