Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

Array.prototype.toSorted()

Baseline
Weitgehend verfügbar

Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Juli 2023 browserübergreifend verfügbar.

Die Methode toSorted() von Array-Instanzen ist die kopierende Variante der Methode sort(). 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 Zeichenfolgen umgewandelt und anschließend nach den Unicode-Codepunktwerten ihrer Zeichen sortiert. Weitere Informationen finden Sie unter sort().

Rückgabewert

Ein neues Array mit den Elementen in aufsteigender Reihenfolge.

Beschreibung

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

Bei der Verwendung mit Arrays mit Lücken behandelt die Methode toSorted() leere Positionen beim Durchlaufen so, als hätten sie den Wert undefined.

Die Methode toSorted() ist generisch. Sie setzt beim Wert von this lediglich eine length-Eigenschaft und Eigenschaften mit ganzzahligen Schlüsseln voraus.

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().

toSorted() mit Arrays mit Lücken verwenden

Leere Positionen werden so sortiert, als hätten sie den Wert undefined. Sie werden immer an das 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]

toSorted() für Objekte aufrufen, die keine Arrays sind

Die Methode toSorted() liest die length-Eigenschaft von this. Anschließend erfasst sie alle vorhandenen Eigenschaften mit ganzzahligen Schlüsseln 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

Spezifikation
ECMAScript® 2027 Language Specification
# sec-array.prototype.tosorted

Browser-Kompatibilität

Siehe auch