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 mit den Elementen in aufsteigender Reihenfolge zurück.

Syntax

js
toSorted()
toSorted(compareFn)

Parameter

compareFn Optional

Eine Funktion, die die Reihenfolge der Elemente bestimmt. Wenn sie weggelassen wird, werden die Array-Elemente in Strings konvertiert und dann nach dem Unicode-Codepunkt-Wert 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 Parameter compareFn.

Bei Verwendung auf sparsely arrays durchläuft die toSorted() Methode leere Stellen, als hätten sie den Wert undefined.

Die toSorted() Methode ist generisch. Sie erwartet lediglich, dass der this Wert eine length Eigenschaft und integer-basierte Eigenschaften hat.

Beispiele

Ein Array sortieren

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]

Weitere Anwendungsbeispiele finden Sie unter sort().

Verwendung von toSorted() auf sparsely arrays

Leere Stellen werden so 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]

Aufruf von toSorted() auf Nicht-Array-Objekten

Die toSorted() Methode liest die length Eigenschaft von this. Sie sammelt dann alle existierenden integer-basierten 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® 2026 Language Specification
# sec-array.prototype.tosorted

Browser-Kompatibilität

Siehe auch