Wenn ich ein Array mit einem Bündel von Stellen haben sortiert alle alten wie:Javascript - Wie vergleicht und sortiert man ein Array basierend auf der Reihenfolge des zweiten Arrays?
[
{
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"
}
]
jedoch eine andere Anordnung, die die Struktur des ersten Feldes entscheidet auf der Grundlage der ids des ersten Arrays:
[
{
id: 1,
parent: 0
},
{
id: 4,
parent: 1
},
{
id: 2,
parent: 1
},
{
id: 3,
parent: 0
},
{
id: 5,
parent: 3
}
]
Was wäre der effizienteste Weg diese zu sortieren, so dass das erste Array nach dem zweiten Array sortiert ist?
Ich würde erwarten, dass die resultierende Anordnung so etwas wie folgt aussehen:
[
{
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
}
]
Wie berechne ich 'Einzug'-Wert? Was ist Logik dahinter? –
Sie möchten also ein abgeflachtes Array mit einem Einzugfeld, das angibt, wie tief das Kind in der Struktur ist, statt einer verschachtelten Struktur wie Arrays. Wäre nicht ID: 5 in diesem Fall ein Einzug von 2 anstelle von 1? – Sasang
Eine flache Anordnung wäre vorzuziehen. Der Einzug gibt an, wie viele Eltern es hat (oder wie tief im Baum es geschachtelt ist). – Winter