Необходимо создать несколько значений каталога (строка) из объекта JavaScript (древовидная структура) - PullRequest
0 голосов
/ 07 мая 2019

У меня есть вложенное дерево объектов, которое представляет структуру папок. Мне нужно создать несколько каталогов, проходя через узлы.

диаграмма структуры папок:

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);

Я получаю только один уровень подпапок, например, "/ video / Synopi-Videos" или "/ Другие видео / Срочная папка".

Но то, что я пытаюсь сделать, это получить некоторые выходные данные, такие как "/ video / Synopi-Videos / Empty Folders" , затем снова "/ video / Synopi-Videos / Other Videos / Urget папка / " и т. д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...