是否有预先构建的函数来检查两个对象在JavaScript中是否具有相同的属性?

时间:2015-04-16 08:03:54

标签: javascript object

我问过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,但该帖子只考虑对象在相同的属性名称下是否相等,而您可以在我的示例中看到我只考虑属性值但不考虑属性名称。

1 个答案:

答案 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