Встречается на собеседованиях • сегодня
Как сравнить два объекта в JS
В JavaScript объекты сравниваются по ссылке, а не по содержимому. Даже если два объекта имеют одинаковые свойства и значения, {} === {} вернёт false.
Способы сравнения объектов:
- Глубокое сравнение – рекурсивно проверяем каждое свойство:
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]));
}- JSON.stringify() – преобразуем объекты в строки (не учитывает undefined и порядок свойств):
javascript
JSON.stringify(obj1) === JSON.stringify(obj2);- Lodash.isEqual() – используем библиотеку Lodash для надежного сравнения:
javascript
_.isEqual(obj1, obj2);
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы