Сравнение массивов объектов в JavaScript

РЕДАКТИРОВАТЬ: Вы не можете comparison перегружать операторы в текущих, распространенных jsonarray браузерных реализациях интерпретаторов character-arrays JavaScript.

Чтобы ответить javascript на первоначальный вопрос, один javascript-library из способов сделать это, и array заметьте, это немного хак, просто arrays serialize the two arrays to JSON и затем сравнить две строки bytearray JSON. Это просто скажет вам, отличаются vanillajs ли массивы, очевидно, вы .js можете сделать это для каждого из arrays объектов в массивах, чтобы arrays увидеть, какие из них отличаются.

Другой array вариант — использовать библиотеку, в character-arrays которой есть хорошие возможности javascript для сравнения объектов — я js использую и рекомендую MochiKit.


РЕДАКТИРОВАТЬ: The answer kamens gave также array заслуживает рассмотрения, поскольку comparison одна функция для сравнения arrays двух заданных объектов будет swift-array намного меньше, чем любая jsonarray библиотека для выполнения javascript того, что я предлагаю (хотя bytearray мое предложение, безусловно, будет comparison работать достаточно хорошо).

Вот jsonarray наивная реализация, которой vanillajs может быть достаточно для jsonarray вас - имейте в виду, что javascript-library с этой реализацией могут bytearray возникнуть проблемы:

function objectsAreSame(x, y) {
   var objectsAreSame = true;
   for(var propertyName in x) {
      if(x[propertyName] !== y[propertyName]) {
         objectsAreSame = false;
         break;
      }
   }
   return objectsAreSame;
}

Предполагается, что arrays оба объекта имеют одинаковый vanilla-javascript точный список свойств.

О, и, вероятно, очевидно, что, к character-arrays лучшему или к худшему, я ecmascript принадлежу к лагерю с единственной swift-array точкой возврата. :)

javascript

arrays

comparison

2022-11-21T14:44:19+00:00