当前位置: 首页 > 面试题库 >

比较Angular中的对象

闾丘京
2023-03-14
问题内容

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

对象1

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

对象2

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

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


问题答案:

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

angular.equals(obj1, obj2)

它进行了深层比较,并且不依赖于键的顺序。请参阅AngularJS
DOCS
和一些演示

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


 类似资料:
  • 问题内容: 我希望能够使LinkedList.contains()对于自定义比较器返回true。 假设我有1个LinkedList和2个对象 从技术上讲,两个对象在比较方面是相同的(MyObject实现Comparable) (a == b)==真 但是,当我执行以下操作时,myList对于myList.contains(b)不会返回true 我认为它是因为contains将检查对象引用,并看到a

  • 问题内容: 在JavaScript中比较对象的最佳方法是什么? 例: 我知道如果 两个对象引用的是完全相同的对象 , 则它们相等 ,但是有没有办法检查它们是否具有相同的属性值? 以下方法对我有用,但这是唯一的可能性吗? 问题答案: 不幸的是,除非您递归使用并访问所有不可枚举的属性,否则没有完美的方法,但这仅在Firefox中有效。 因此,我能做的最好是猜测使用情况。 1)快速且有限。 当您具有简单

  • 我有一个关于compareTo函数如何帮助比较器排序的问题,即o1。比较(o2)与o2。比较(o1) 如果两个字符串相等,则此方法返回0,否则返回正值或负值。如果第一个字符串在词典上大于第二个字符串,则结果为正,否则结果为负。 上面的陈述很简单,但是为什么o1.compare(o2)会给我一个升序,而o2.compare(o1)给了我一个降序? 如果我有整数值“5,10,3”,我得到3,5,10和

  • 问题内容: 我得到的错误就在这行 。 该怎么办?其他逻辑还可以吗? 我想做的是有一个A列表和一个B列表,其中一个属性与id相同;尽管变量名不同。即在和在B。现在我将两个列表都放在ListAll中,并在相同的变量id / bid上对它们进行排序。我有A和B实现可比性。 和我的listAll是对象类型? 我该怎么做?谢谢。 问题答案: 您可以添加一个通用基类并在那里进行比较,如下所示:

  • 问题内容: 我想比较JavaScript代码中2个对象数组。这些对象共有8个属性,但是每个对象都不会有一个值,并且每个数组的大小永远都不能超过8个,因此可能要使用遍历每个对象然后查看对象的值的蛮力方法。 8个属性是执行我想做的最简单的方法,但是在实现之前,我想看看是否有人有一个更优雅的解决方案。有什么想法吗? 问题答案: 编辑:您不能在JavaScript解释器的当前基于浏览器的常见实现中重载运算

  • 代码: 输出:(增加空白行以提高可读性) 有两件事我不明白: null 我还查看了date.equals()的实现: 那么,为什么返回false,尽管为两个对象都返回了1406498400000? 参考:http://docs.oracle.com/javase/7/docs/api/java/util/date.html#equals(java.lang.object)