javascript – Angular等于每个项目的深度比较和返回差异

前端之家收集整理的这篇文章主要介绍了javascript – Angular等于每个项目的深度比较和返回差异前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想使用angular.equals比较两个数组,并得到彼此不同的项目列表.

例如:

  1. var obj1 = [
  2. { id: 1,name: 'john',age: 30,height: 6 },{ id: 2,name: 'ben',age: 20,height: 5 }
  3. ];
  4. var obj2 = [
  5. { id: 1,name: 'martin',age: 25,height: 5 }
  6. ];

现在做angular.equals(obj1,obj2)将返回false.

在这里,我想比较不同数组中的每个项目,并在UI中显示时提醒差异或显示不同的颜色.

假设obj1来自HTML表单而obj2来自服务.

结果预期:

.id [1]名称改为约翰,年龄改为25岁
要么
当我比较每个项目时,.get false或true.

解决方法

Angular没有内置函数.您应该使用库 deep-diff.
  1. var first = [
  2. { id: 1,height: 5 }
  3. ];
  4.  
  5. var second = [
  6. { id: 1,height: 5 }
  7. ];
  8.  
  9. var result = diff(first,second);
  10.  
  11. // result => [
  12. // { kind: 'E',path: [0,'name'],lhs: 'john',rhs: 'martin' },// { kind: 'E','age' ],lhs: 30,rhs: 25 }
  13. // ]

猜你在找的JavaScript相关文章