Heim >Web-Frontend >js-Tutorial >Wie kann ich ein Array basierend auf der Reihenfolge eines anderen Arrays in JavaScript sortieren?
Arrays basierend auf Hilfswerten neu anordnen
In JavaScript kann es Szenarien geben, in denen Sie ein Array basierend auf der von angegebenen Reihenfolge sortieren müssen ein weiteres Array. Dies kann besonders nützlich sein, wenn Sie mit Datenstrukturen arbeiten, bei denen die Reihenfolge der Elemente entscheidend ist.
Betrachten Sie das folgende Beispiel:
itemsArray = [ ['Anne', 'a'], ['Bob', 'b'], ['Henry', 'b'], ['Andrew', 'd'], ['Jason', 'c'], ['Thomas', 'b'] ]; sortingArr = [ 'b', 'c', 'b', 'b', 'a', 'd' ];
In diesem Fall besteht das Ziel darin, das itemsArray neu anzuordnen Passen Sie die Reihenfolge des sortingArr an. Leider gibt es keine IDs, um die Elemente zu verfolgen, daher besteht die Priorität darin, die Reihenfolge so genau wie möglich abzugleichen.
Lösung:
Um dies zu erreichen, können Sie Nutzen Sie die integrierte sort()-Methode von JavaScript in Verbindung mit einer benutzerdefinierten Vergleichsfunktion. Die Vergleichsfunktion vergleicht zwei Elemente aus dem itemsArray basierend auf ihren entsprechenden Werten im sortingArr.
itemsArray.sort(function(a, b){ return sortingArr.indexOf(a) - sortingArr.indexOf(b); });
Dieser Ausdruck sortiert das itemsArray im Wesentlichen basierend auf den entsprechenden Indizes seiner Elemente im sortingArr. Infolgedessen sieht das neu angeordnete Array wie folgt aus:
itemsArray = [ ['Bob', 'b'], ['Jason', 'c'], ['Henry', 'b'], ['Thomas', 'b'] ['Anne', 'a'], ['Andrew', 'd'], ];
Diese Lösung priorisiert die durch sortingArr angegebene Reihenfolge und gibt das itemsArray in der gewünschten Anordnung aus.
Das obige ist der detaillierte Inhalt vonWie kann ich ein Array basierend auf der Reihenfolge eines anderen Arrays in JavaScript sortieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!