написать свой код глубокого копирования свойств одного объекта в другой. Столкнулся с проблемой вложенных объектов в свойствах копируемого объекта. Код был написан, но он работает только на 3 уровня вложенности, дальше просто копируется ссылка на объект. Хотелось бы написать такой код, который проходится по всем уровням вложенности, как это можно реализовать на чистом JS, без использования библиотек?
P.S. Прочитал про готовые реализации с помощью .cloneDeep(obj), но хотелось бы самому написать это и разобраться.
P.S.S Прошу воспринимать код просто как учебные заметки. Буду рад рекомендациям.
function cloneObj(obj){
for(let key in obj){
if(typeof obj[key] == 'object'){
for(let x in obj[key]){
if ( typeof obj[key][x] == 'object'){
for(let y in obj[key][x]){
clone[y] = obj[key][x][y]
}
}else{
clone[x] = obj[key][x]
}
}
}else{
clone[key] = obj[key]
}
}
return clone
}
Рекурсия
Спасибо за ответ, буду изучать рекурсии) Рано походу углубился в эту тему
Там пару строк кода будет
Просто внутри первой развилки с typeof object вставь clone[key] = cloneObj(obj[key]), ну и отладь полученный код :)
Обсуждают сегодня