use*_*423 7 javascript angularjs
我想比较两个数组使用angular.equals并得到彼此不同的项目列表.
例如:
var obj1 = [
{ id: 1, name: 'john', age: 30, height: 6 },
{ id: 2, name: 'ben' , age: 20, height: 5 }
];
var obj2 = [
{ id: 1, name: 'martin', age: 25, height: 6 },
{ id: 2, name: 'ben' , age: 20, height: 5 }
];
Run Code Online (Sandbox Code Playgroud)
现在做angular.equals(obj1, obj2)就会回来false.
在这里,我想比较不同数组中的每个项目,并在UI中显示时提醒差异或显示不同的颜色.
假设obj1来自HTML表单并且obj2来自服务.
结果预期:
.id [1]名称更改为john,年龄更改为25
或
.get false或true当我比较每个项目时.
小智 2
Angular 没有为此提供内置函数。为此,您应该使用库deep-diff 。
var first = [
{ id: 1, name: 'john', age: 30, height: 6 },
{ id: 2, name: 'ben' , age: 20, height: 5 }
];
var second = [
{ id: 1, name: 'martin', age: 25, height: 6 },
{ id: 2, name: 'ben' , age: 20, height: 5 }
];
var result = diff(first, second);
// result => [
// { kind: 'E', path: [0, 'name'], lhs: 'john', rhs: 'martin' },
// { kind: 'E', path: [0, 'age' ], lhs: 30 , rhs: 25 }
// ]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9500 次 |
| 最近记录: |