Показать сообщение отдельно
  #1 (permalink)  
Старый 18.10.2019, 18:12
Аспирант
Отправить личное сообщение для Andrew K Посмотреть профиль Найти все сообщения от Andrew K
 
Регистрация: 15.11.2014
Сообщений: 50

Создание иммутабельной копии объекта
Здравствуйте. Есть ли какие-нибудь библиотеки, которые делают иммутабельные копии объектов, но без указания пути вложенности подобъектов? Например есть переменная container хранящая объект с большой глубиной вложенных подобъектов. И есть другая переменная obj хранящая ссылку на объект вложенный в container (неизвестно на каком уровне вложенность). И нужно создать иммутабельную копию container чтобы изменить объект, на который указывает obj. При этом оригинальный объект был бы не затронут. То есть функция, которая должна это сделать (на рисунке называется makeImmutableCopy), должна найти в container расположение объекта, на который указывает obj, и сделать поверхностные копии каждого родительского объекта (на рисунке они имеют зелёную обводку).

В документации Реакта указываются библиотеки https://github.com/immerjs/immer и https://github.com/kolodny/immutability-helper. Но они требуют указывать полный путь, поэтому не подходят.
Ответить с цитированием