Array.prototype.toSorted()
Baseline
Weitgehend verfügbar
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Juli 2023 browserübergreifend verfügbar.
Die Methode toSorted() von Array-Instanzen ist die kopierende Variante der Methode sort(). Sie gibt ein neues Array zurück, dessen Elemente in aufsteigender Reihenfolge sortiert sind.
Syntax
toSorted()
toSorted(compareFn)
Parameter
compareFnOptional-
Eine Funktion, die die Reihenfolge der Elemente bestimmt. Wird sie weggelassen, werden die Array-Elemente in Zeichenfolgen umgewandelt und anschließend nach den Unicode-Codepunktwerten ihrer Zeichen sortiert. Weitere Informationen finden Sie unter
sort().
Rückgabewert
Ein neues Array mit den Elementen in aufsteigender Reihenfolge.
Beschreibung
Weitere Informationen zum Parameter compareFn finden Sie unter sort().
Bei der Verwendung mit Arrays mit Lücken behandelt die Methode toSorted() leere Positionen beim Durchlaufen so, als hätten sie den Wert undefined.
Die Methode toSorted() ist generisch. Sie setzt beim Wert von this lediglich eine length-Eigenschaft und Eigenschaften mit ganzzahligen Schlüsseln voraus.
Beispiele
>Ein Array sortieren
const months = ["Mar", "Jan", "Feb", "Dec"];
const sortedMonths = months.toSorted();
console.log(sortedMonths); // ['Dec', 'Feb', 'Jan', 'Mar']
console.log(months); // ['Mar', 'Jan', 'Feb', 'Dec']
const values = [1, 10, 21, 2];
const sortedValues = values.toSorted((a, b) => a - b);
console.log(sortedValues); // [1, 2, 10, 21]
console.log(values); // [1, 10, 21, 2]
Weitere Anwendungsbeispiele finden Sie unter sort().
toSorted() mit Arrays mit Lücken verwenden
Leere Positionen werden so sortiert, als hätten sie den Wert undefined. Sie werden immer an das Ende des Arrays sortiert, und compareFn wird für sie nicht aufgerufen.
console.log(["a", "c", , "b"].toSorted()); // ['a', 'b', 'c', undefined]
console.log([, undefined, "a", "b"].toSorted()); // ["a", "b", undefined, undefined]
toSorted() für Objekte aufrufen, die keine Arrays sind
Die Methode toSorted() liest die length-Eigenschaft von this. Anschließend erfasst sie alle vorhandenen Eigenschaften mit ganzzahligen Schlüsseln im Bereich von 0 bis length - 1, sortiert sie und schreibt sie in ein neues Array.
const arrayLike = {
length: 3,
unrelated: "foo",
0: 5,
2: 4,
3: 3, // ignored by toSorted() since length is 3
};
console.log(Array.prototype.toSorted.call(arrayLike));
// [4, 5, undefined]
Spezifikationen
| Spezifikation |
|---|
| ECMAScript® 2027 Language Specification> # sec-array.prototype.tosorted> |