Мне нужно воссоздать многомерный массив объектов, только взглянув на один узел.
Я пытался использовать рекурсивную функцию в цикле (Array.map).
obj = [{
key: 0,
children: [{
key: 1,
children: [{
key: 2,
children: [{
key: 3,
children: []
},
{
key: 4,
children: []
}]
},
{
key: 5,
children: [{
key: 6,
children: []
},
{
key: 7,
children: []
},
{
key: 8,
children: []
}]
}]
}]
}]
function test(arg, level=0, arry=[]){
arg.map((data, i) => {
if(!data.arry){
arry.push(data.key);
data.arry = arry;
}
if(data.children){
test(data.children, level+1, data.arry);
}
})
}
test(obj);
Функция test должна создать и вернуть точно такой же объект, как obj .
Это только упрощенная версия проблемы, которая у меня есть, и поэтому она выглядит странно (возвращая объект, который у меня уже есть). Моя первоначальная проблема заключается в извлечении частей n-мерного массива объектов из БД, но без знания его исходных размеров. Поэтому мне нужно «обнаружить» размеры и затем построить точно такую же копию объекта.