Нужно Сравнение Объекта того же типа, чтобы узнать разницу в JavaScript - PullRequest
0 голосов
/ 28 января 2011

Мне нужно сравнить объект, чтобы узнать, какие свойства изменены и какие свойства добавлены новые.Есть ли фрагмент кода, который будет проходить по всему объекту и его свойствам и предупреждать, если какие-либо изменения существуют, и продолжать его процесс до конца.

Считайте, что мне нужно сравнить gridpanel (объект) в extjs до и после шоуи скрыть событие своей родительской панели.

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 21 марта 2013

У меня была похожая проблема, когда я добавлял объекты в массив. Я хотел быть уверен, что один и тот же объект не добавляется дважды.

Я нашел вспомогательную функцию для ExtJS, которая реализует функцию, которая сравнивает объекты на основе значений, содержащихся в объекте:

https://github.com/nmishra/helpers.js

Затем его можно использовать так:

var obj1 = {foo: 'bar'},
    obj2 = {foo: 'bar'},
    equality = Ext.ux.util.Object.compareObject(obj1, obj2);
console.log(equality);
0 голосов
/ 09 февраля 2011

Если вы просто хотите проверить, отличаются ли два объекта одного класса:

function differ(a, b) {
  for (var i in a) {
    if (a.hasOwnProperty(i) && b.hasOwnProperty(i) && a[i] === b[i]) {
      return true;
    }
  }
  return false;
}

a = {foo: 1, bar: 2};
b = {bar: 2};

alert( differ(a, b) ? "Objects differ" : "Objects are the same" );

Если это не то, что вам нужно, объясните свою проблему более подробно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...