1. Глубокое клонирование объекта

Средне
deep-clonerecursionobjects

Реализуйте функцию deepClone, которая создаёт полную глубокую копию объекта, включая вложенные объекты, массивы и Date.

Каждый способ должен быть реализован независимо в своём контейнере:

  1. Глубокое копирование вложенных объектов
  2. Глубокое копирование массивов
  3. Корректная копия Date
  4. Обработка null и примитивов

Реализуйте функцию deepClone(obj), которая: - Создаёт глубокую копию переданного объекта - Корректно обрабатывает вложенные объекты и массивы - Копирует экземпляры Date (возвращает новый Date с тем же значением) - Обрабатывает null и примитивные типы - Не использует JSON.parse/JSON.stringify Ограничения: не нужно обрабатывать циклические ссылки, Map, Set, RegExp.

Примеры

Пример
Вход:
deepClone({ a: { b: 1 }, c: [2, 3] })
Ожидаемый результат:

{ a: { b: 1 }, c: [2, 3] } — независимая копия

Подсказка:

Изменение клона не влияет на оригинал

Ограничения

  • Не использовать JSON.parse/JSON.stringify
  • Не использовать structuredClone
  • Не использовать сторонние библиотеки
0% принято
0 решений