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

前端之家收集整理的这篇文章主要介绍了javascript – Angular等于每个项目的深度比较和返回差异前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想使用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: 5 }
];

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

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

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

结果预期:

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

解决方法

Angular没有内置函数.您应该使用库 deep-diff.
var first = [
    { id: 1,height: 5 }
];

var second = [
    { id: 1,height: 5 }
];

var result = diff(first,second);

// result => [
//    { kind: 'E',path: [0,'name'],lhs: 'john',rhs: 'martin' },//    { kind: 'E','age' ],lhs: 30,rhs: 25       }
// ]
原文链接:https://www.f2er.com/js/157294.html

猜你在找的JavaScript相关文章