Heim >Web-Frontend >js-Tutorial >Wie kann ich ein Array basierend auf der Reihenfolge eines anderen Arrays in JavaScript sortieren?

Wie kann ich ein Array basierend auf der Reihenfolge eines anderen Arrays in JavaScript sortieren?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-23 01:18:11451Durchsuche

How Can I Sort One Array Based on the Order of Another Array in JavaScript?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn