我正在用 Javascript 构建图形编辑器,我需要一种算法来识别两个“节点”对象之间的所有可能路径。
给定以下 JSON 对象:
{
"failureNode": {
"failureNode": {
"failureNode": {
"failureNode": {
"failureNode": null,
"successNode": null,
"id": "node-endpointfailure",}
},
"successNode": {
"failureNode": null,
"successNode": null,
"id": "node-endpointsuccess",
},
"id": "node-1",
},
"successNode": {
"failureNode": null,
"successNode": null,
"id": "node-endpointsuccess",
},
"id": "node-2",
},
"successNode": {
"failureNode": {
"failureNode": {
"failureNode": null,
"successNode": null,
"id": "node-endpointfailure",
},
"successNode": {
"failureNode": null,
"successNode": null,
"id": "node-endpointsuccess",
},
"id": "node-1",
},
"successNode": {
"failureNode": null,
"successNode": null,
"id": "node-endpointsuccess",
},
"id": "node-3",
},
"id": "node-4",
},
"successNode": {
"failureNode": null,
"successNode": null,
"id": "node-endpointsuccess",
},
"id": "node-root",
}
我需要 ID = 'node-root' &'node-endpointfailure' 的节点之间的所有可能路由。在此示例中,有两种可能的方式从“开始”(数据结构中的节点根)开始和结束和“失败”(节点端点故障)开始:
- 开始 -> node1 -> node2 -> node4 -> 失败
- 开始 -> node1 -> node3 -> node4 -> 失败
对于此示例,输出将是 JSON 路径数组。像这样的东西...
[
failureNode.failureNode.failureNode.failureNode,
failureNode.successNode.failureNode.failureNode
]
大多数应用程序都使用 jQuery,因此纯 Javascript 或 jQuery 解决方案都可以使用。