我问过similar question,但这个是关于对象的。
假设我有2个对象
firstObject = {0: 1, 1: 2, 2: 3, 4: 4, 4: 5};
secondObject = {0: 5, 1: 4, 2: 3, 4: 2, 4: 1};
我想知道它们是否包含相同的属性值,而订单和属性名称并不重要。 (对于上面的示例,该函数应该返回true。)将对象转换为数组不是一个选项。
我知道我可以编写一个函数来对它们进行排序,然后循环遍历它们进行检查,但是有没有预先构建的函数呢?
P.S。我注意到possible duplicated question,但该帖子只考虑对象在相同的属性名称下是否相等,而您可以在我的示例中看到我只考虑属性值但不考虑属性名称。
答案 0 :(得分:0)
下划线 _.isEqual(object, other) 在两个对象之间执行优化的深度比较,以确定它们是否应被视为相等。
var stooge = {name: 'moe', luckyNumbers: [13, 27, 34]};
var clone = {name: 'moe', luckyNumbers: [13, 27, 34]};
stooge == clone;
=> false
_.isEqual(stooge, clone);
=> true