现在有个需求,需要根据服务端请求的数据,组装成一个树节点,也就是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
提交
取消