Какие методы глубокого копирования объектов в JavaScript ты знаешь?

Для создания глубокой копии объекта в JavaScript существуют несколько подходов:

Короткий ответ

Что ответить на собеседовании

Для создания глубокой копии объекта в JavaScript существуют несколько подходов:

Подробный разбор

Ответ с пояснениями

Для создания глубокой копии объекта в JavaScript существуют несколько подходов:

  1. JSON.parse(JSON.stringify(obj)) — самый простой способ, но он не копирует функции, символы, свойства с undefined, а также не работает с объектами, содержащими циклические ссылки.
const deepCopy = JSON.parse(JSON.stringify(originalObject));
  1. Рекурсивное копирование — написать функцию, которая рекурсивно копирует все вложенные объекты и массивы, учитывая типы данных.
  2. Использование библиотек — например, lodash с функцией _.cloneDeep():
const _ = require('lodash');
const deepCopy = _.cloneDeep(originalObject);
  1. Structured Clone API — современный метод, поддерживаемый в браузерах и Node.js, который корректно копирует большинство типов, включая циклические ссылки:
const deepCopy = structuredClone(originalObject);

Выбор метода зависит от требований к типам данных и окружению.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее