Встречается на собеседованиях • сегодня

Как избежать потери данных при использовании Spread оператора с разными объектами

Spread оператор (...) создаёт поверхностную копию объекта. Потеря данных может произойти при слиянии объектов с одинаковыми ключами – значения из последнего объекта перезапишут предыдущие. Также вложенные объекты копируются по ссылке.

Как избежать:

  1. Для простых объектов – явно указывайте приоритет свойств:
javascript
const merged = { ...defaults, ...userData }; // userData перезапишет defaults
  1. Для глубокого копирования используйте:
  • JSON.parse(JSON.stringify(obj)) (но теряет функции и undefined)
  • Библиотеки типа Lodash (_.merge() или _.cloneDeep())
  1. Для вложенных структур – мерджите вручную:
javascript
const merged = {
  ...obj1,
  nested: { ...obj1.nested, ...obj2.nested }
};

Особенно осторожно с массивами – spread создаёт новый массив, но элементы остаются ссылками.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы