2016-10-10 6 views
0
var obj1 = {a:1, b:2, c:3}; 
var obj2 = {a:3, b:2, c:1}; 

Как сравнить объекты равными или не используя javascript (для цикла).Сравнение объектов Javascript для каждого ключа и значения

Я попытался сравнить оба объекта путем преобразования через stringify, но сравнение терпит неудачу, когда ключи ошибочны или нет в правильном порядке.

ответ

0

Go, как этот

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 

Обратите внимание, что эта функция не сравнивается в смысле сравнения «глубокий».