Задать вопрос
Ivanq
@Ivanq
Знаю php, js, html, css

Сравнение объектов?

Да, да, да. На Тостере уже были такие вопросы. В гугле все тоже есть... но не то.
Нужно сравнить данные в JS. Как сравнить числа, строки, булы и т. д. - ясно. А как быть с массивами и объектами? Простое сравнение ничего не даст - будет false. Перебор тоже не особо поможет - сравним, например, window и... window. Программа тут же запутается - вылетит с too much recursion. Оно и ясно. window.window.window.window === window. И это можно продолжать вечно. Как сравнить объекты? Желательно без библиотек.

PS И не советуйте мне Object.is (он не для этого) и тому подобное.
  • Вопрос задан
  • 6813 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
для каждого случая свои способы:

1) window === window (это с любыми глобальными или импортируемыми объектами)
2) рекурсивное сравнение объектов, но надо хэндлить циклические ссылки по хорошему.
3) JSON.stringify(a) === JSON.stringify(b) как альтернатива второму. Страдает теми же проблемами, надо циклические ссылки самому хэндлить.
4) lodash.isEqual
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
Rocket Смоленск
от 80 000 до 130 000 ₽
Wanted. Москва
от 250 000 до 400 000 ₽
Wanted. Санкт-Петербург
До 220 000 ₽
23 янв. 2025, в 09:18
10000 руб./за проект
23 янв. 2025, в 04:47
10000 руб./за проект