慕妹3242003
2018-11-14 13:14:49
現在有個需求,需要根據服務端請求的數據,組裝成一個樹節點,也就是parent-child節點,服務端請求后的數據結構如下圖,topology是一個object,object下面的key是一個parent,value是child數組。var topology = {1:['2'],2:['29','39','38','37'],24:['27'],29:['24'],37:['42'],38:['43'],39:['47'],42:['46'],43:['45']}比如上圖中的1有一個child是一個數組["2"],這個value為2的child又有4個child,也就是["29","39","38","37"]最終需要生成如下數據結構,即key是parent的string,child因為有多個,所以是一個數組const data = {"1":{"2":{"29":{"24":{"27":["26"]}},"39":["47"],"38":{"43":["45"]},"37":{"42":["46"]}}}}
1 回答

夢里花落0921
TA貢獻1772條經驗 獲得超6個贊
var topology = [ ... ];
function rebuildTopo(index) {
var topo = topology[index];
var check = false;
if(!topo) {
return null;
} else if(topo instanceof Array) {
var obj = {};
for(var j in topo) {
var t = topo[j];
obj[t] = rebuildTopo(t);
if(!!obj[t])
check = true;
}
if(check)
return obj;
else
return Object.keys(obj);
}
}
console.log(JSON.stringify({1: rebuildTopo(1)}));
結果:
添加回答
舉報
0/150
提交
取消