需要从一个javascript对象(树结构)构建多个目录值(字符串)

时间:2019-05-07 06:08:31

标签: javascript object recursion

我有一个嵌套的对象树,它代表一个文件夹结构。我需要遍历节点来构建多个目录。

文件夹结构图:

enter image description here

这是我的文件夹结构的对象: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文件夹/“

0 个答案:

没有答案