Heim >Web-Frontend >js-Tutorial >Raffinierte Sortierung in JavaScript

Raffinierte Sortierung in JavaScript

Jennifer Aniston
Jennifer AnistonOriginal
2025-03-08 00:40:09734Durchsuche

Sophisticated Sorting in JavaScript

Die Sortiermechanismus von

JavaScript ist einfach und einfach zu bedienen, enthält jedoch leistungsstarke und flexible Funktionen. sort() Methoden können nicht nur das Array -Array sortieren, sondern auch willkürlich nach benutzerdefinierter bedingter Logik sortieren.

Kernpunkte:

  • JavaScripts sort() -Funktion ist ein flexibles Werkzeug, das Arrays auf verschiedene Weise organisiert, einschließlich benutzerdefinierter Permutationen, die auf der bedingten Logik definiert sind.
  • Die Funktion
  • sort() funktioniert in jeder Operation zwei Werte (a und b). Wenn die Funktion weniger als Null zurückgibt, ist A vor b;
  • JavaScript unterstützt mehrdimensionale Sortier- und Mehrkonditions-Sortierung. Verwenden Sie bei der mehrdimensionalen Sortierung die internen Werte im Array.
  • JavaScript kann auch Objektarrays sortieren. Wenn Vergleiche komplexer werden, wird empfohlen, Objektliteral -Arrays anstelle von mehrdimensionalen Arrays zu verwenden, da dies Vergleichsfunktionen erleichtert.

sort() Wie die Funktion funktioniert:

→ Wenn Sie bereits die Grundlagen kennen, können Sie diesen Abschnitt überspringen.

Wenn die Methode sort() keine Parameter nimmt, wird das Array in Wörterbuchreihenfolge sortiert (Wörterbuchreihenfolge wird jeder Wert als Zeichenfolge behandelt):

var letters = ["R","O","F","L"];

letters.sort();

alert(letters);    // 输出 ["F","L","O","R"]

Andernfalls ist der Parameter der sort() -Methode eine Vergleichsfunktion, die das Sortierverhalten basierend auf ihrem Rückgabewert definiert. Die Vergleichsfunktion selbst akzeptiert zwei Parameter, die allgemein als A und B bezeichnet werden und die die beiden in jeder Operation verglichenen Werte darstellen. Dann:

  1. Wenn die Funktion weniger als Null zurückgibt, ist a vor B
  2. Wenn die Funktion größer als Null zurückgibt, dann ist B vor a
  3. Wenn die Funktion null zurückgibt, bleiben die relativen Positionen von A und B unverändert
Die

-Pezifikation definiert diese Regeln verwirrend. Die JavaScript -Spezifikation fordert die erste Sortierbedingung auf "Sortieren B nach einem Index, der unter einem" unter "ist". Dies bedeutet jedoch tatsächlich "Rang B niedriger in einem", was ein höherer -Endex ist und in Bezug auf numerische Indizes nicht niedriger ist. Es verwendet das Wort "Index" auf sehr verwirrende Weise;

Daher besteht die übliche Möglichkeit, Vergleichsfunktionen zu verwenden, darin, eine einfache Berechnung auszuführen und zurückzugeben, um das gewünschte sortierte Ergebnis zu erzielen. Wenn beispielsweise die Funktion zurückgibt (a - b), wird eine numerische Sortierung erzeugt:

var numbers = [8,5];

numbers.sort(function(a, b) {
    return a - b;   
});

alert(numbers);    // 输出 [5,8]

Wir können dies mit einem Wert mit einem Wert erklären: Da a = 8 und b = 5, dann ist (a - b) == 3;

Daher kann die inverse numerische Ordnung durch Invertieren der Gleichung erzeugt werden:

var letters = ["R","O","F","L"];

letters.sort();

alert(letters);    // 输出 ["F","L","O","R"]

Wir können auch eine Vergleichsfunktion erstellen, um eine Wörterbuchsortierung zu generieren, indem wir drei Vergleiche definieren, um jedes Zeichenpaar zu bewerten - im Rechenbegriff "ist" A "weniger als" B ", damit wir die Zeichenfolgen direkt vergleichen und dann eine der drei sortierten Werte zurückgeben:

var numbers = [8,5];

numbers.sort(function(a, b) {
    return a - b;   
});

alert(numbers);    // 输出 [5,8]

Beachten Sie, wie wir jede Zeichenfolge im Voraus in Kleinbuchstaben konvertieren, was sicherstellt, dass wir eine nichtempfindliche Sortierung erhalten (wenn wir dies nicht tun, werden die oberen und Kleinbuchstaben separat sortiert). Wir weisen auch die Ergebnisse dieser Operationen neuen Variablen zu, da einige Browser keine überschreibenden Parameter zulassen.

(Der folgende Inhalt entspricht dem ursprünglichen Text. Der doppelte Teil wird hier weggelassen, um die Konsistenz mit dem Originaltext aufrechtzuerhalten)

Mehrdimensionale Sortierung Multi-Konditions-Sortierung Bestellung von Objektarrays Anweisungen zur stabilen Sortierung

Zusammenfassung: Denken Sie daran, dass es nichts Besonderes gibt, Vergleichsfunktionen zu sortieren. Es ist nur eine normale Funktion, die Operationen ausführt und Ergebnisse zurückgibt. Sie können externe Daten laden, Test -Rendering -Elemente erstellen oder eine beliebige Anzahl komplexer Vorgänge ausführen. Solange die Funktion korrekt zurückgibt - weniger als Null, größer als Null oder Null -, gibt es keine spezifische Einschränkung des Implementierungsprozesses!

Quelle des Miniaturbildbildes: [Soren]

FAQs über das erweiterte JavaScript -Sortieren (der ursprüngliche FAQ -Teil wird weggelassen, Duplikation vermeiden)

Das obige ist der detaillierte Inhalt vonRaffinierte Sortierung in JavaScript. 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