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

Что такое глубокое сравнение

Глубокое сравнение (deep comparison) — это проверка равенства объектов или массивов по их содержимому, а не по ссылкам. В отличие от поверхностного сравнения (=== или ==), которое работает только для примитивов, глубокое сравнение рекурсивно проверяет все вложенные свойства.

Пример:

javascript
const obj1 = { a: 1, b: { c: 2 } };
const obj2 = { a: 1, b: { c: 2 } };

// Поверхностное сравнение (false)
console.log(obj1 === obj2); 

// Глубокое сравнение (нужна реализация)
function deepEqual(a, b) {
  if (a === b) return true;
  if (typeof a !== 'object' || a === null || b === null) return false;
  
  const keysA = Object.keys(a);
  const keysB = Object.keys(b);
  
  if (keysA.length !== keysB.length) return false;
  
  return keysA.every(key => deepEqual(a[key], b[key]));
}

console.log(deepEqual(obj1, obj2)); // true

Для работы с глубоким сравнением на практике часто используют библиотеки типа Lodash (_.isEqual()).

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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