路徑字符串轉(zhuǎn)樹狀數(shù)據(jù)

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


獲取的數(shù)據(jù)


要把它轉(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ù)了,完美搞定!

處理后的數(shù)據(jù)

文章轉(zhuǎn)自:路徑字符串?dāng)?shù)據(jù)轉(zhuǎn)化為樹型層級(jí)對(duì)象,path to json tree_weixin_30267697的博客-CSDN博客_jsonpath轉(zhuǎn)換樹型結(jié)構(gòu)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容