У меня есть вложенное дерево объектов, которое представляет структуру папок. Мне нужно создать несколько каталогов, проходя через узлы.
диаграмма структуры папок:
![enter image description here](https://i.stack.imgur.com/zIs6f.png)
Вот объект моей структуры папок: https://jsfiddle.net/himel023/8jw3yhs0/
Я пробовал рекурсивный и нерекурсивный подход. Не работает так, как я хотел.
Вот моя ссылка на jsfiddle: https://jsfiddle.net/himel023/sr25xq8L/
пример кода, который я пробовал:
let crDirList = (tree) => {
for (let i = 0; i < tree.length; i++) {
let tempSingleDir = crSingleDir(tree[i]);
console.log(tempSingleDir);
let curDir = tree[i];
while (curDir.hasChild) {
curDir = curDir.subFolder.folders;
crDirList(curDir);
}
}
}
let dirArr = [];
function crSingleDir (tree) {
let dirToBuildArr = [];
let subf = tree.subFolder.folders;
if (tree.hasChild) {
for (let i = 0; i < subf.length; i++) {
dirToBuildArr[i] = `/${tree.name}/${subf[i].name}`;
}
} else {
dirToBuildArr[0] = 0;
}
return(dirToBuildArr);
}
let fst = treeObject.folders;
crDirList(fst.folders);
Я получаю только один уровень подпапок, например, "/ video / Synopi-Videos" или "/ Другие видео / Срочная папка".
Но то, что я пытаюсь сделать, это получить некоторые выходные данные, такие как "/ video / Synopi-Videos / Empty Folders" , затем снова "/ video / Synopi-Videos / Other Videos / Urget папка / " и т. д.