如何使用lodash对2个对象进行深度比较?

JLavoie:

我有2个不同的嵌套对象,我需要知道它们的嵌套属性之一是否有所不同。

var a = {};
var b = {};

a.prop1 = 2;
a.prop2 = { prop3: 2 };

b.prop1 = 2;
b.prop2 = { prop3: 3 };

具有更多嵌套属性的对象可能要复杂得多。但这是一个很好的例子。我可以选择使用递归函数或带有lodash的东西...

JLavoie:

一个简单而优雅的解决方案是使用_.isEqual,它可以进行深度比较:

var a = {};
var b = {};

a.prop1 = 2;
a.prop2 = { prop3: 2 };

b.prop1 = 2;
b.prop2 = { prop3: 3 };

_.isEqual(a, b); // returns false if different

但是,此解决方案未显示哪个属性不同。

http://jsfiddle.net/bdkeyn0h/

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

与Lodash进行对象深度比较的数组

如何使用Javascript或lodash对两个对象的属性进行浅层比较?

使用has()进行Lodash深度对象测试

JavaScript(Lodash)-两个对象的深度比较

如何使用lodash通过单个属性过滤/比较2个对象数组?

使用Lodash进行深度合并

深度比较:当 2 个对象的值不相同时,此代码如何返回 false?

使用lodash比较2个数组

如何对两个结构进行“深度比较”或“差异”?

如何使用JavaScript深度映射对象键(lodash)?

将两个对象进行深度比较或与json.stringify比较?

如何使用lodash比较对象而不考虑对象的顺序

对象数组中的Javascript / Lodash深度比较对象

javascript / lodash:由于子树对象,如何对对象进行递归深度获取

如何使用dunder方法进行对象比较

如何使用std :: lower_bound比较没有第二个对象的对象变量进行比较

如何使用Javascript对对象进行深度过滤

如何使用 lodash 从对象中深度删除假值和空对象

如何对无序数组进行深度比较?

如何比较 2 个不同数组的对象?

使用 JavaScript,如何遍历 2 个 JSON 对象,比较它们的字段并根据比较创建一个新的 JSON 对象?

lodash:比较两个对象

如何使用lodash进行深度设置而不创建未定义的值

如何用lodash比较两个对象并返回新对象?

如何使用Vanilla或lodash对对象数组进行排序

如何使用lodash对对象数组中的属性进行分组?

如何使用lodash按日期字段对对象进行排序?

比较2个对象中的关键点并进行替换

Spock Framework是否可以对对象进行深度比较?