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
compareFn
Optional-
Eine Funktion, die die Reihenfolge der Elemente bestimmt. Wenn sie weggelassen wird, werden die Array-Elemente in Zeichenfolgen umgewandelt und dann gemäß dem Unicode-Codepunktwert jedes Zeichens sortiert. Siehe
sort()
für weitere Informationen.
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