Показать сообщение отдельно
  #1 (permalink)  
Старый 02.05.2018, 17:09
Интересующийся
Отправить личное сообщение для dakociha Посмотреть профиль Найти все сообщения от dakociha
 
Регистрация: 26.04.2018
Сообщений: 26

Сравнение объектов
function deepEqual(a, b) {
      if (a === b) {
        return true;
      }
      if (a == null && typeof(a) !== 'object' || b == null && typeof(b) !== 'object') {
        return false;
      }

      var equal = true;
      for (var key in a) {
        if (typeof(a) === 'object' && typeof(b) === 'object') {
          if (!deepEqual(a[key], b[key])) {
            equal = false;
          }
        } else if (a !== b) {
          equal = false;
        }
      }
      return equal;

    }


    var obj = {
      here: {
        is: "an"
      },
      object: 2
    };



    alert(deepEqual(obj, {
      here: {
        is: "an"
      },
      object: 2
    }));



Почему когда я изменяю 'an' то функция показывает, что объекты не равны. А если меняю '2' на другое число, то функция всегда возвращает true

Последний раз редактировалось dakociha, 02.05.2018 в 17:13.
Ответить с цитированием