我有一个嵌套的对象树,它代表一个文件夹结构。我需要遍历节点来构建多个目录。
文件夹结构图:
这是我的文件夹结构的对象: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);
例如,我仅获得一个级别的子文件夹。 “ /视频/ Synopi视频”或“ /其他视频/紧急文件夹”。
但是我想做的是得到一些输出,例如“ / video / Synopi-Videos / Empty Folders” ,然后再次“ / video / Synopi-Videos / Other Videos / Urget文件夹/“ 等