Heim  >  Artikel  >  Java  >  JS-Array-Sortierung: Verstehen Sie die grundlegende Verwendungsanalyse der Methode sort()

JS-Array-Sortierung: Verstehen Sie die grundlegende Verwendungsanalyse der Methode sort()

王林
王林Original
2023-12-28 16:39:511277Durchsuche

JS-Array-Sortierung: Verstehen Sie die grundlegende Verwendungsanalyse der Methode sort()

JS-Array-Sortierung: Grundlegende Nutzungsanalyse der Methode sort()

In JavaScript ist Array eine häufig verwendete Datenstruktur, und Sortieren ist eine häufige Operation zum Neuanordnen von Elementen im Array. JS bietet die Methode sort(), mit der das Array nach bestimmten Regeln sortiert werden kann. In diesem Artikel wird die grundlegende Verwendung der Methode sort() ausführlich vorgestellt und spezifische Codebeispiele bereitgestellt.

Die Methode sort() ist eine native Methode von Arrays und kann durch Aufrufen von sort() des Array-Objekts verwendet werden. Es hat zwei Verwendungszwecke:

  1. Es werden keine Parameter übergeben: In diesem Fall konvertiert die Methode sort() die Array-Elemente in Zeichenfolgen und sortiert sie in der Reihenfolge der Unicode-Codierung.
  2. Übergeben Sie eine Vergleichsfunktion als Parameter: Die Sortierregeln können angepasst werden.

Schauen wir uns zunächst den Beispielcode für die erste Verwendung an:

let arr = [5, 2, 8, 1, 4];
arr.sort();
console.log(arr); // 输出:[1, 2, 4, 5, 8]

Im obigen Code werden die Elemente im Array arr nach der Konvertierung in Zeichenfolgen in codiert Reihenfolge von Unicode sortiert. Das Ergebnis ist [1, 2, 4, 5, 8]. arr中的元素被转化为字符串后,按照Unicode编码的顺序进行了排序。结果是[1, 2, 4, 5, 8]。

然而,sort()方法默认按照字符串进行排序,这就导致了一些令人困惑的结果。例如:

let arr2 = [10, 100, 1, 20, 2];
arr2.sort();
console.log(arr2); // 输出:[1, 10, 100, 2, 20]

在上述代码中,数组arr2的排序结果并不是我们期望的:[1, 2, 10, 20, 100],而是[1, 10, 100, 2, 20]。这是因为在排序过程中,它将数字10,100,2和20先转化为字符串,然后按照Unicode编码的顺序排序,因此得到了不正确的结果。

为了解决这个问题,我们需要使用第二种用法:传递一个比较函数作为参数。比较函数需要有两个参数,它会将两个要比较的元素传递给该函数,并根据函数的返回值来决定它们的排序顺序。

下面是一个具体的示例代码:

let arr3 = [10, 100, 1, 20, 2];
arr3.sort(function(a, b) {
    return a - b;
});
console.log(arr3); // 输出:[1, 2, 10, 20, 100]

在上面的代码中,我们传递了一个比较函数给sort()方法。该比较函数返回a - b的结果,这将使得数组内的元素按照从小到大的顺序进行排序。结果是[1, 2, 10, 20, 100]。

除了使用a - b

Allerdings sortiert die Methode sort() standardmäßig nach Zeichenfolge, was zu einigen verwirrenden Ergebnissen führt. Zum Beispiel:

let arr4 = ["apple", "banana", "cherry", "date"];
arr4.sort(function(a, b) {
    return a.length - b.length;
});
console.log(arr4); // 输出:["date", "apple", "cherry", "banana"]

Im obigen Code ist das Sortierergebnis des Arrays arr2 nicht das, was wir erwarten: [1, 2, 10, 20, 100], sondern [1, 10, 100 , 2 , 20]. Dies liegt daran, dass beim Sortiervorgang zunächst die Zahlen 10, 100, 2 und 20 in Zeichenfolgen umgewandelt und dann in der Reihenfolge der Unicode-Kodierung sortiert werden, sodass falsche Ergebnisse erzielt werden.


Um dieses Problem zu lösen, müssen wir die zweite Verwendung verwenden: die Übergabe einer Vergleichsfunktion als Parameter. Die Vergleichsfunktion erfordert zwei Parameter. Sie übergibt die beiden zu vergleichenden Elemente an die Funktion und bestimmt deren Sortierreihenfolge basierend auf dem Rückgabewert der Funktion.

🎜Das Folgende ist ein konkreter Beispielcode: 🎜rrreee🎜Im obigen Code übergeben wir eine Vergleichsfunktion an die Methode sort(). Diese Vergleichsfunktion gibt das Ergebnis von a - b zurück, wodurch die Elemente im Array von klein nach groß sortiert werden. Das Ergebnis ist [1, 2, 10, 20, 100]. 🎜🎜Neben der Verwendung von a - b als Vergleichsfunktion können wir auch andere Funktionen verwenden, um Sortierregeln zu definieren. Hier ist ein Beispiel für die Sortierung nach String-Länge: 🎜rrreee🎜Im obigen Code übergeben wir eine benutzerdefinierte Vergleichsfunktion an die Methode sort(). Diese Vergleichsfunktion gibt das Ergebnis von a.length - b.length zurück, wodurch die Zeichenfolgen im Array von der kürzesten zur längsten Länge sortiert werden. Das Ergebnis ist [„Dattel“, „Apfel“, „Kirsche“, „Banane“]. 🎜🎜Zusammenfassung: Die Array-Sort()-Methode von 🎜JS ist ein leistungsstarkes und praktisches Sortierwerkzeug. Durch die Verwendung unterschiedlicher Parameter kann das Array nach unterschiedlichen Regeln sortiert werden. Wenn Sie bei Verwendung der Methode sort() nur nach der standardmäßigen Unicode-Kodierungsreihenfolge sortieren möchten, können Sie die Methode sort() direkt aufrufen, ohne Parameter zu übergeben. Wenn Sie die Sortierregeln anpassen müssen, können Sie dies tun, indem Sie eine Vergleichsfunktion als Parameter übergeben. 🎜

Das obige ist der detaillierte Inhalt vonJS-Array-Sortierung: Verstehen Sie die grundlegende Verwendungsanalyse der Methode sort(). 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