Skip to content

Latest commit

 

History

History
27 lines (16 loc) · 2.62 KB

File metadata and controls

27 lines (16 loc) · 2.62 KB

Домашнее задание: Глубокое сравнение объектов (deepEqual)

Цель и результат домашнего задания

Научиться применять ООП-подходы (классы, наследование, инкапсуляция, полиморфизм) для решения реальных задач на JavaScript. Закрепить понимание прототипов и работы с объектами, а также реализовать полезную утилиту для сравнения сложных структур данных.

Описание домашнего задания

Реализовать функцию глубокого сравнения объектов deepEqual с использованием принципов ООП (классы и прототипы). Функция должна корректно сравнивать любые вложенные объекты, массивы, примитивы, а также корректно обрабатывать случаи с циклическими ссылками.

Задачи:

  • Создать класс или набор классов, реализующих логику глубокого сравнения объектов.
  • Использовать наследование и/или прототипы для расширения функциональности при необходимости.
  • Покрыть функцию тестами (минимум 5 тестов на разные случаи: примитивы, массивы, вложенные объекты, циклические ссылки, сравнение разных типов).

Критерии

Домашнее задание "Принято" при наборе 3 и более баллов, иначе "На доработку".

Реализована функция глубокого сравнения deepEqual согласно описанию выше: корректно сравнивает вложенные объекты/массивы, обрабатывает циклические ссылки — 3 балла Есть тесты (не менее 5), покрывающие примитивы, массивы, вложенные объекты, циклические ссылки и сравнение разных типов — +1 балл Код оформлен чисто, есть комментарии и пример(ы) использования — +1 балл

Максимальный балл - 5

Формат сдачи: Ссылка на Github