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 von Array Instanzen ist die kopierende Version der sort() Methode. Sie gibt ein neues Array zurück, dessen Elemente in aufsteigender Reihenfolge sortiert sind.

Syntax

js
toSorted()
toSorted(compareFn)

Parameter

compareFn Optional

Eine Funktion, die die Reihenfolge der Elemente bestimmt. Wird sie weggelassen, werden die Array-Elemente in Strings konvertiert und dann entsprechend dem Unicode-Codepunktwert jedes Zeichens sortiert. Weitere Informationen finden Sie unter sort().

Rückgabewert

Ein neues Array mit den in aufsteigender Reihenfolge sortierten Elementen.

Beschreibung

Weitere Informationen zum compareFn Parameter finden Sie unter sort().

Beim Einsatz auf sparse Arrays iteriert die toSorted() Methode leere Stellen, als ob sie den Wert undefined hätten.

Die toSorted() Methode ist generisch. Sie erwartet lediglich, dass der this Wert eine length Eigenschaft und integerindizierte Eigenschaften besitzt.

Beispiele

Sortieren eines Arrays

js
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() bei sparse Arrays

Leere Stellen 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.

js
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. Dann sammelt sie alle existierenden integerindizierten Eigenschaften im Bereich von 0 bis length - 1, sortiert sie und schreibt sie in ein neues Array.

js
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® 2025 Language Specification
# sec-array.prototype.tosorted

Browser-Kompatibilität

Siehe auch