87,984
社区成员
发帖
与我相关
我的任务
分享 var d = { "lines": {
"demo_line_3": {
"from": "demo_node_1",
"to": "demo_node_2"
},
"demo_line_5": {
"from": "demo_node_2",
"to": "demo_node_4"
},
"demo_line_8": {
"from": "demo_node_4",
"to": "demo_node_6"
},
"demo_line_9": {
"from": "demo_node_4",
"to": "demo_node_7"
},
"demo_line_91": {
"from": "demo_node_4",
"to": "demo_node_71"///////
},
"demo_line_11": {
"from": "demo_node_6",
"to": "demo_node_10"
},
"demo_line_12": {
"from": "demo_node_7",
"to": "demo_node_10"
},
"demo_line_14": {
"from": "demo_node_10",
"to": "demo_node_13"
},
"demo_line_15": {
"from": "demo_node_13",
"to": "demo_node_15"////////
}
}
};
var paths = [],line,arr;
for (attr in d.lines) {
line = d.lines[attr];
if (paths.length == 0) paths[0] = { path: line.from + '->' + line.to, to: line.to, from: line.from };
else {
for (var i = 0, l = paths.length; i < l; i++) {
if (paths[i].to == line.from) { paths[i].path += '->' + line.to; paths[i].to = line.to; paths[i].from = line.from; }
else if (paths[i].from == line.from) {//分裂线路
arr = paths[i].path.split('->');
arr[arr.length - 1] = line.to;
paths[paths.length] = { path: arr.join('->'), from: line.from, to: line.to };
break;
}
}
}
}
for (var i = 0; i < paths.length; i++)
document.write(paths[i].path + '<br>');