[英]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.