如果我有一幫樁的陣列來分類任何舊的如何:JavaScript的 - 如何比較和排序基於第二個數組的順序的一個數組?
[
{
id: 1,
name: "first parent post"
},
{
id: 2,
name: "second child of first parent post"
},
{
id: 3,
name: "second parent post"
},
{
id: 4,
name: "first child of first parent post"
},
{
id: 5,
name: "first child of second parent post"
}
]
然而,另一個數組決定是第一組的基礎上,第一陣列的IDS結構:
[
{
id: 1,
parent: 0
},
{
id: 4,
parent: 1
},
{
id: 2,
parent: 1
},
{
id: 3,
parent: 0
},
{
id: 5,
parent: 3
}
]
將這些排序的最有效方法是什麼,以便第一個數組按第二個數組排序?
我希望得到的陣列看起來像這樣:
[
{
id: 1,
name: "first parent post",
indent: 0
},
{
id: 4,
name: "first child of first parent post",
indent: 1
},
{
id: 2,
name: "second child of first parent post",
indent: 1
},
{
id: 3,
name: "second parent post",
indent: 0
},
{
id: 5,
name: "first child of second parent post",
indent: 1
}
]
如何計算'indent'值?這背後的邏輯是什麼? –
所以你需要一個帶有縮進字段的扁平數組,該字段指定了子樹在樹中的深度,而不是像數組這樣的嵌套樹。在這種情況下,不會有ID:5的縮進2,而不是1? – Sasang
平面陣列將是更可取的。縮進表示它有多少個父母(或者它嵌套的樹有多深)。 – Winter