Wenn Sie schon länger mit JavaScript arbeiten, müssen Sie wissen, dass die Array-Sortierfunktion „Sort“ eine Methode im Array-Prototyp ist, nämlich array.prototype.sort(), sort(compareFunction), wobei „compareFunction“ eine ist Schauen wir uns eine Beschreibung von Mozilla MDN an:
Wenn „compareFunction“ nicht bereitgestellt wird, werden Elemente sortiert, indem sie in Zeichenfolgen umgewandelt und Zeichenfolgen in lexikografischer Reihenfolge („Wörterbuch“ oder „Telefonbuch“, nicht numerisch) verglichen werden. Beispielsweise kommt „80“ vor „9“ in lexikografischer Reihenfolge Reihenfolge, aber in einer numerischen Sortierung kommt 9 vor 80.
Sehen Sie sich unten einige einfache Beispiele an:
// Ausgabe ["a", "b", "c"]
console.log(["c", "b", "a"].sort());
// Ausgabe [1, 2, „a“, „b“]
console.log(["b", 2, "a", 1].sort());
Wie Sie dem obigen Beispiel entnehmen können, wird im Wörterbuch standardmäßig nach alphabetischer Reihenfolge sortiert.
Glücklicherweise akzeptiert sort eine benutzerdefinierte Vergleichsfunktion, wie im folgenden Beispiel:
Nach dem Sortieren haben wir noch eine Frage: Wie steuert man die auf- und absteigende Reihenfolge?
Die Sortierregeln von comparFunction lauten wie folgt:
1.Wenn eine negative Zahl zurückgegeben wird, wird a nach einem niedrigeren Index im Array sortiert.
2.Wenn eine positive Zahl zurückgegeben wird, wird a nach einem höheren Index sortiert.
3.Und wenn 0 zurückgegeben wird, ist keine Sortierung erforderlich.
Sehen wir uns einen Auszug aus Mozilla MDN an:
Das Verhalten der Sortiermethode hat sich zwischen JavaScript 1.1 und JavaScript 1.2 geändert.Um diese Beschreibung zu erklären, schauen wir uns ein Beispiel an:
In JavaScript 1.1 funktioniert die Sortiermethode auf einigen Plattformen nicht. Diese Methode funktioniert auf allen Plattformen für JavaScript 1.2.
In JavaScript 1.2 konvertiert diese Methode nicht mehr undefinierte Elemente, sondern sortiert sie am oberen Ende des Arrays. Bitte klicken Sie hier für Details.
Ich hoffe, dass dieser Artikel Ihnen dabei hilft, die Methode sort() zu erlernen und zu verstehen. Ich hoffe, dass Sie etwaige Unangemessenheiten im Artikel kritisieren und korrigieren.
Referenzlink: https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/sort