Как сравнить два объекта?

C сервера приходит объект,содержащий в себе в одном из свойств массив объектов,каждый объект этого массива может содержать еще массив объектов и тд.
Пример,
{
свойство1: Значение1,
свойство2: Значение2,
children: [ 0 : { свойства:значения ....,
                         children: [ 0 : { свойства : значения ....,
                                                 children: Array(0)
                                       }]
               }]
}


Нужно обработать на фронте,добавлять в объект новый children если он пришел с сервера.
  • Вопрос задан
  • 11052 просмотра
Пригласить эксперта
Ответы на вопрос 3
@zordec
function deepEqual(obj1, obj2) {
  if (typeof obj1 !== "object" || typeof obj2 !== "object") {
    return false;
  }
  if (obj1 === undefined || obj2 === undefined) {
    return false;
  }
  if (obj1 === null || obj2 === null) {
    return false;
  }
  let obj1Keys = Object.keys(obj1);
  let obj2Keys = Object.keys(obj2);
  if (obj1Keys.length !== obj2Keys.length) {
    return false;
  }
  for (let i = 0; i < obj1Keys.length; i++) {
    if (obj2Keys.includes(obj1Keys[i]) === false) {
      return false;
    }
  }
  for (let i = 0; i < obj1Keys.length; i++) {
    if (typeof obj1[obj1Keys[i]] === "object") {
      return deepEqual(obj1[obj1Keys[i]], obj2[obj1Keys[i]]);
    }
    if (obj1[obj1Keys[i]] !== obj2[obj2Keys[i]]) {
      return false;
    }
  }
  return true;
}
Ответ написан
Комментировать
@kttotto
пофиг на чем писать
Решений в интернете полно.
сравнить два js объекта
Ответ написан
mazhekin
@mazhekin
Frontend, Backend Web Developer
Преобразовать оба объекта в строки с помощью JSON.stringify и сравнить
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы