Ivanq
@Ivanq
Знаю php, js, html, css

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

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

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

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

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

Войти через центр авторизации
Похожие вопросы
NewTech Екатеринбург
от 70 000 до 120 000 руб.
от 2 000 до 2 500 usd.
11 дек. 2019, в 11:20
8000 руб./за проект
11 дек. 2019, в 10:53
1000 руб./за проект
11 дек. 2019, в 10:50
100 руб./за проект