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

Wie sortiere ich ein JavaScript-Array basierend auf der Reihenfolge eines anderen Arrays?

Barbara Streisand
Freigeben: 2024-12-19 18:49:10
Original
732 Leute haben es durchsucht

How to Sort a JavaScript Array Based on the Order of Another Array?

Sortieren eines JavaScript-Arrays basierend auf einem anderen Array

In JavaScript ist das Sortieren von Arrays ein häufiger Vorgang. Es gibt jedoch Szenarien, in denen Sie ein Array möglicherweise basierend auf einem anderen Array sortieren möchten. Dies kann eine Herausforderung sein, insbesondere wenn Sie keine eindeutigen Bezeichner zum Verknüpfen der Elemente haben.

Problemstellung:

Stellen Sie sich vor, Sie haben zwei Arrays:

  • itemsArray: Ein Array von Paaren [Name, Gruppenname], z.B.:

    [
        ['Anne', 'a'],
        ['Bob', 'b'],
        ['Henry', 'b'],
        ['Andrew', 'd'],
        ['Jason', 'c'],
        ['Thomas', 'b']
    ]
    Nach dem Login kopieren
  • sortingArr: Ein sortiertes Array von Gruppennamen, z.B.:

    ['b', 'c', 'b', 'b', 'a', 'd']
    Nach dem Login kopieren

The Die Aufgabe besteht darin, itemsArray neu anzuordnen, damit es der Anordnung von sortingArr entspricht. Das bedeutet, dass Elemente, die zur gleichen Gruppe gehören, nebeneinander liegen und in der Reihenfolge in sortingArr geordnet sein sollten.

Lösung:

Um dieses Problem zu lösen, können wir eine Sortierfunktion verwenden die Elemente basierend auf dem Index ihrer Gruppe in sortingArr vergleicht:

itemsArray.sort(function(a, b){  
  return sortingArr.indexOf(a) - sortingArr.indexOf(b);
});
Nach dem Login kopieren

Diese Funktion berechnet die Differenz zwischen den Indizes der Elemente in SortierArr. Eine positive Differenz gibt an, dass Element a nach Element b platziert werden sollte, während eine negative Differenz das Gegenteil anzeigt.

Einzeilige Lösung:

Alternativ können Sie schreiben Die Sortierfunktion verwendet die Pfeilsyntax, was zu einer prägnanteren Darstellung führt Lösung:

itemsArray.sort((a, b) => sortingArr.indexOf(a) - sortingArr.indexOf(b));
Nach dem Login kopieren

Ausgabe:

Nach dem Sortieren sieht das itemsArray folgendermaßen aus:

[
    ['Bob', 'b'],
    ['Jason', 'c'],
    ['Henry', 'b'],
    ['Thomas', 'b'],
    ['Anne', 'a'],
    ['Andrew', 'd'],
]
Nach dem Login kopieren

Wie Sie sehen können, ist das Elemente im itemsArray wurden neu angeordnet und sortiert, um der Reihenfolge im sortingArr zu entsprechen.

Das obige ist der detaillierte Inhalt vonWie sortiere ich ein JavaScript-Array basierend auf der Reihenfolge eines anderen Arrays?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage