遇到一個(gè)需求,就是在本地選中一個(gè)文件夾,要把這個(gè)文件夾顯示在瀏覽器上,并且要和在本地一樣,能打開退回,但是在本地獲取的只是一堆字符串路徑,大概是下圖:

要把它轉(zhuǎn)換為樹狀結(jié)構(gòu)要怎么寫呢
???pathToTree(input)?{
??????var?output?=?[];
??????for?(var?i?=?0;?i?<?input.length;?i++)?{
????????var?chain?=?input[i].path.split("/");
????????var?currentNode?=?output;
????????for?(var?j?=?0;?j?<?chain.length;?j++)?{
??????????if?(chain[j]?===?"")?{
????????????break;
??????????}
??????????var?wantedNode?=?chain[j];
??????????var?lastNode?=?currentNode;
??????????for?(var?k?=?0;?k?<?currentNode.length;?k++)?{
????????????if?(currentNode[k].title?==?wantedNode)?{
??????????????currentNode?=?currentNode[k].children;
??????????????break;
????????????}
??????????}
??????????if?(lastNode?==?currentNode)?{
????????????var?newNode?=?(currentNode[k]?=?{
??????????????key:?input[i].path,
??????????????title:?wantedNode,
??????????????children:?[],
??????????????check:?0,
??????????????file:?input[i].file
????????????});
????????????currentNode?=?newNode.children;
??????????}?else?{
????????????delete?currentNode.children;
??????????}
????????}
??????}
??????return?output;
????}
這樣就可以得到想用的數(shù)據(jù)了,完美搞定!
