簡體   English   中英

如何在JavaScript中將列表排列成樹?

[英]how to array list to tree in javascript?

我有一個清單:

var list = ['parent-element', 'child-of-previus-element-1', 'child-of-previus-element-2'];

其中數組中的每個下一個元素都是上一個的子元素。

我想將此列表轉換為樹結構,例如:

{
    "parent-element": {
        "childrens": [{
            "child-of-previus-element-1": {
                "childrens": [{
                    "child-of-previus-element-2": {
                        "childrens": []
                    }
                }]
            }
        }]
    }
}

我努力了:

 var list = ['parent-element', 'child-of-previus-element-1', 'child-of-previus-element-2']; var tree = {}; for (var i = 0; i < list.length; i++) { if( list[i-1] && tree[list[i-1]] ){ tree[list[i-1]].childrens[list[i]] = {"childrens": []}; } else { tree[list[i]] = { "childrens": [] }; } } console.log( JSON.stringify(tree) ); 

但輸出是:

{
    "parent-element":{
        "childrens":[]
     },
     "child-of-previus-element-2":{
        "childrens":[]
     }
}

您可能會降低它:

 var list = ['parent-element', 'child-of-previus-element-1', 'child-of-previus-element-2']; var tree = list.reduceRight((child, key) => ({ [key]: { children: [child] } }), null); console.log(JSON.stringify(tree)) 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM