Array.prototype.toSorted()
Baseline 2023Newly available
Since July 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
Die toSorted()
Methode von Array
Instanzen ist die kopierende Version der sort()
Methode. Sie gibt ein neues Array zurück, bei dem die Elemente in aufsteigender Reihenfolge sortiert sind.
Syntax
toSorted()
toSorted(compareFn)
Parameter
compareFn
Optional-
Eine Funktion, die die Reihenfolge der Elemente bestimmt. Wird sie weggelassen, werden die Array-Elemente in Zeichenfolgen umgewandelt und dann gemäß jedem Zeichen-Unicode-Codepunktwert sortiert. Siehe
sort()
für weitere Informationen.
Rückgabewert
Ein neues Array, bei dem die Elemente in aufsteigender Reihenfolge sortiert sind.
Beschreibung
Siehe sort()
für weitere Informationen über den compareFn
Parameter.
Bei Verwendung auf sparse Arrays behandelt die toSorted()
Methode leere Plätze, als hätten sie den Wert undefined
.
Die toSorted()
Methode ist generisch. Sie erwartet lediglich, dass der this
Wert eine length
Eigenschaft und integer-gekoppelte Eigenschaften hat.
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]
Für weitere Anwendungsbeispiele siehe sort()
.
Verwenden von toSorted() auf sparse Arrays
Leere Plätze werden sortiert, als hätten sie den Wert undefined
. Sie werden immer ans Ende des Arrays sortiert und compareFn
wird nicht für sie aufgerufen.
console.log(["a", "c", , "b"].toSorted()); // ['a', 'b', 'c', undefined]
console.log([, undefined, "a", "b"].toSorted()); // ["a", "b", undefined, undefined]
Aufrufen von toSorted() auf Nicht-Array-Objekten
Die toSorted()
Methode liest die length
Eigenschaft von this
. Sie sammelt dann alle existierenden integer-gekoppelten Eigenschaften 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
Specification |
---|
ECMAScript® 2026 Language Specification # sec-array.prototype.tosorted |