遇到一個(gè)需求音五,就是在本地選中一個(gè)文件夾亿汞,要把這個(gè)文件夾顯示在瀏覽器上,并且要和在本地一樣杆兵,能打開(kāi)退回雁仲,但是在本地獲取的只是一堆字符串路徑,大概是下圖:
要把它轉(zhuǎn)換為樹(shù)狀結(jié)構(gòu)要怎么寫(xiě)呢
???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ù)了琐脏,完美搞定攒砖!