假設我有一組屬於不同組的隨機洗牌碎片。例如:按匹配起始節點和結束節點排序項目
let pieces = [
{
id: "a1",
startNode: 18,
endNode: 42,
},
{
id: "a3",
startNode: 16,
endNode: 30,
},
{
id: "b2",
startNode: 48,
endNode: 65,
},
{
id: "a2",
startNode: 42,
endNode: 16,
},
{
id: "a4",
startNode: 30,
endNode: 31,
},
{
id: "b1",
startNode: 23,
endNode: 48,
},
];
我希望他們早在正確的順序兩個數組:
ordered = [
[
{
id: "a1",
startNode: 18,
endNode: 42,
},
{
id: "a2",
startNode: 42,
endNode: 16,
},
{
id: "a3",
startNode: 16,
endNode: 30,
},
{
id: "a4",
startNode: 30,
endNode: 31,
},
],[
{
id: "b1",
startNode: 23,
endNode: 48,
},
{
id: "b2",
startNode: 48,
endNode: 65,
},
]
];
他們由他們匹配的開始和結束節點排序,所以「A2」走後「A1」 ,因爲它的startNode與「a1」的endNode匹配。 「b1」和「b2」屬於不同的組,因爲它們不與任何「a」組共享開始或結束節點。該ID不能用於排序,這只是爲了清晰起見。
關於如何做到這一點的任何想法?我認爲它需要某種遞歸功能,我不能把它放在我的腦海裏。
你嘗試過這麼遠嗎? – evolutionxbox