HOWTO · JavaScript
JavaScript Benutzerdefinierte sort()-Funktion
JavaScript-Arrays sind eine Liste von Werten, die einen beliebigen Typ haben können, z. B. Zeichenfolgen, boolesche Werte, Zahlen usw. In einigen Szenarien müssen Sie JavaScript-Arrays sortieren und können die Methode sort() verwenden. Das Wichtige an der Methode sort() ist, dass Sie damit eine benutzerdefinierte Vergleichsfunktion mit Ihren eigenen Regeln übergeben können.
In diesem Artikel besprechen wir die Sortieroperation über JavaScript-Arrays.
die sort()-Methode in JavaScript
Die Methode sort() wird verwendet, um die Elemente in einem Array zu ordnen. Standardmäßig sortiert diese Methode Elemente in aufsteigender Reihenfolge.
Normalerweise ändert diese Methode das ursprüngliche Array, indem die Positionen der Elemente geändert werden. Darüber hinaus wandelt die Methode sort() Eingabe-Array-Elemente in Strings um und führt dann einen String-Vergleich durch, um Elemente zu sortieren.
Wenn Sie ein Array von Zahlen eingeben, werden diese Zahlen zuerst in ihren Zeichenfolgenwert konvertiert und dann verglichen. Lassen Sie uns ein Array von Zahlen erstellen und die Methode sort() verwenden, um es zu sortieren.
Codebeispiel:
let numericArray = [100, 3, 66, 23, 200, 500];
numericArray.sort();
console.log(numericArray);
Ausgang:
Dies ist nicht wie erwartet bestellt. Wir müssen die Methode sort() anpassen, um dies zu beheben.
Es erlaubt uns, eine benutzerdefinierte Vergleichsfunktion als Argument zu übergeben. Diese Vergleichsfunktion akzeptiert zwei Argumente, und die angewendeten Regeln für die übergebenen Argumente bestimmen die Sortierreihenfolge.
Verwenden Sie die benutzerdefinierte sort()-Methode, um ein Array von Zahlen in JavaScript zu sortieren
Um ein Array von Zahlen zu sortieren, sollten wir eine Vergleichsfunktion implementieren, wie im Folgenden gezeigt.
Wenn die zurückgegebenen Werte der Funktion compare(a, b) kleiner als 0 sind, positioniert die Methode sort() a vor b.
Im umgekehrten Fall wird b vor a positioniert. Immer wenn die Funktion compare(a, b) 0 zurückgibt, ändern sich die Positionen von a und b nicht.
Daher kann die benutzerdefinierte Vergleichsfunktion an die Methode sort() übergeben werden, wie im Folgenden gezeigt.
Codebeispiel:
let numericArray = [100, 3, 66, 23, 200, 500];
numericArray.sort(function(a, b) {
if (a > b) return 1;
if (a < b) return -1;
return 0;
});
console.log(numericArray);
Ausgang:
Wie erwartet wurde das Array jetzt richtig sortiert. Dies ist eine sehr nützliche Funktion der JavaScript-Methode sort(), mit der Benutzer die Reihenfolge bestimmen können.