Heim >Web-Frontend >js-Tutorial >Raffinierte Sortierung in JavaScript
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:
sort()
-Funktion ist ein flexibles Werkzeug, das Arrays auf verschiedene Weise organisiert, einschließlich benutzerdefinierter Permutationen, die auf der bedingten Logik definiert sind. sort()
funktioniert in jeder Operation zwei Werte (a und b). Wenn die Funktion weniger als Null zurückgibt, ist A vor b; 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:
-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!