Встречается на собеседованиях • сегодня

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

В JavaScript объекты сравниваются по ссылке, а не по содержимому. Даже если два объекта имеют одинаковые свойства и значения, {} === {} вернёт false.

Способы сравнения объектов:

  1. Глубокое сравнение – рекурсивно проверяем каждое свойство:
javascript
function deepEqual(obj1, obj2) {
  if (obj1 === obj2) return true;
  if (typeof obj1 !== 'object' || obj1 === null || typeof obj2 !== 'object' || obj2 === null) return false;
  const keys1 = Object.keys(obj1);
  const keys2 = Object.keys(obj2);
  if (keys1.length !== keys2.length) return false;
  return keys1.every(key => keys2.includes(key) && deepEqual(obj1[key], obj2[key]));
}
  1. JSON.stringify() – преобразуем объекты в строки (не учитывает undefined и порядок свойств):
javascript
JSON.stringify(obj1) === JSON.stringify(obj2);
  1. Lodash.isEqual() – используем библиотеку Lodash для надежного сравнения:
javascript
_.isEqual(obj1, obj2);
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы