var obj1 = {a:1, b:2, c:3};
var obj2 = {a:3, b:2, c:1};
如何使用javascript(for循环)比较对象是否相等。
我尝试通过stringify进行转换来比较这两个对象,但是如果键错位或者顺序不正确,则比较失败。
答案 0 :(得分:0)
像这样去
Object.defineProperty(Object.prototype,"equals", {
value: function (array) {
for ( key in this )
if ( ! ( array[key] === this[key] ) )
return false;
for ( key in array )
if ( ! ( array[key] === this[key] ) )
return false;
return true;
}
});
将为所有对象添加equals
- 方法。您可以像这样使用它:
[0,1,2].equals([0,1,2]); // true
[0,1,2].equals([0,1,3]); // false
[0,1,2].equals([0,1,2,3]); // false
obj1.equals(obj2); // true
请注意,在比较“深度”时,此功能无法进行比较。