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

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

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

Простое сравнение:

javascript
const obj1 = { a: 1 };
const obj2 = { a: 1 };
console.log(obj1 === obj2); // false

Глубокое сравнение:

  1. Для простых объектов можно использовать JSON.stringify():
javascript
console.log(JSON.stringify(obj1) === JSON.stringify(obj2)); // true
  1. Для сложных случаев (вложенные объекты, функции, undefined) лучше использовать библиотеки типа Lodash (_.isEqual()).

Ручная реализация:

javascript
function deepEqual(a, b) {
  if (a === b) return true;
  if (typeof a !== 'object' || typeof b !== 'object') return false;
  const keysA = Object.keys(a), keysB = Object.keys(b);
  if (keysA.length !== keysB.length) return false;
  return keysA.every(key => deepEqual(a[key], b[key]));
}
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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