Javascript でグラフ エディターを作成しています。2 つの「ノード」オブジェクト間のすべての可能なルートを識別するアルゴリズムが必要です。
次の 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' のノード間のすべての可能なルートが必要です。この例では、「開始」(データ構造のノード ルート) から開始し、終了して「失敗」(ノード エンドポイントの失敗) する 2 つの方法があります。
- 開始 -> ノード 1 -> ノード 2 -> ノード 4 -> 失敗
- 開始 -> ノード 1 -> ノード 3 -> ノード 4 -> 失敗
この例では、出力は JSON パスの配列になります。このようなもの...
[
failureNode.failureNode.failureNode.failureNode,
failureNode.successNode.failureNode.failureNode
]
ほとんどのアプリケーションは jQuery を使用しているため、純粋な Javascript または jQuery ソリューションのいずれかが機能します。