Array.prototype.toSorted()
Baseline 2023
Newly 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 der Array
-Instanzen ist die kopierende Version der sort()
-Methode. Sie gibt ein neues Array mit den Elementen in aufsteigender Reihenfolge sortiert zurück.
Syntax
toSorted()
toSorted(compareFn)
Parameter
Rückgabewert
Ein neues Array mit den Elementen in aufsteigender Reihenfolge sortiert.
Beschreibung
Siehe sort()
für weitere Informationen zum compareFn
-Parameter.
Bei Verwendung auf sparsely arrays durchläuft die toSorted()
-Methode leere Slots, als hätten sie den Wert undefined
.
Die toSorted()
-Methode ist generisch. Sie erwartet nur, dass der this
-Wert eine length
-Eigenschaft sowie integer-schlüsselbasierte Eigenschaften hat.
Beispiele
Sortieren eines Arrays
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()
.
Verwendung von toSorted() auf sparsely arrays
Leere Slots werden sortiert, als hätten sie den Wert undefined
. Sie werden immer ans 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]
Aufruf von toSorted() auf Nicht-Array-Objekten
Die toSorted()
-Methode liest die length
-Eigenschaft von this
. Sie sammelt dann alle vorhandenen integer-schlüsselbasierten 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 Language Specification # sec-array.prototype.tosorted |
Browser-Kompatibilität
BCD tables only load in the browser