Array.prototype.reverse()
Baseline
Weitgehend verfügbar
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Juli 2015 browserübergreifend verfügbar.
Die Methode reverse() von Array-Instanzen kehrt die Reihenfolge eines Arrays an Ort und Stelle um und gibt eine Referenz auf dasselbe Array zurück. Dabei wird das erste Array-Element zum letzten und das letzte zum ersten.
Um die Reihenfolge der Elemente umzukehren, ohne das ursprüngliche Array zu verändern, verwenden Sie toReversed().
Probieren Sie es aus
const array = ["one", "two", "three"];
console.log("array:", array);
// Expected output: "array:" Array ["one", "two", "three"]
const reversed = array.reverse();
console.log("reversed:", reversed);
// Expected output: "reversed:" Array ["three", "two", "one"]
// Careful: reverse is destructive -- it changes the original array.
console.log("array:", array);
// Expected output: "array:" Array ["three", "two", "one"]
Syntax
reverse()
Parameter
Keine.
Rückgabewert
Eine Referenz auf das ursprüngliche Array, dessen Reihenfolge nun umgekehrt ist. Das Array wird an Ort und Stelle verändert; es wird keine Kopie erstellt.
Beschreibung
Die Methode reverse() vertauscht die Elemente des aufrufenden Array-Objekts an Ort und Stelle. Sie verändert das Array und gibt eine Referenz darauf zurück.
Die Methode reverse() erhält leere Einträge. Wenn das Ausgangsarray Lücken aufweist, werden die entsprechenden neuen Indizes der leeren Einträge gelöscht und sind damit ebenfalls leer.
Die Methode reverse() ist generisch. Sie setzt lediglich voraus, dass der this-Wert eine length-Eigenschaft und Eigenschaften mit ganzzahligen Schlüsseln besitzt. Obwohl Strings ebenfalls Array-ähnlich sind, eignet sich diese Methode nicht für sie, da Strings unveränderlich sind.
Beispiele
>Die Elemente eines Arrays umkehren
Das folgende Beispiel erstellt ein Array items mit drei Elementen und kehrt anschließend deren Reihenfolge um. Der Aufruf von reverse() gibt eine Referenz auf das umgekehrte Array items zurück.
const items = [1, 2, 3];
console.log(items); // [1, 2, 3]
items.reverse();
console.log(items); // [3, 2, 1]
Die Methode reverse() gibt eine Referenz auf dasselbe Array zurück
Die Methode reverse() gibt eine Referenz auf das ursprüngliche Array zurück. Wird das zurückgegebene Array verändert, ändert sich daher auch das ursprüngliche Array.
const numbers = [3, 2, 4, 1, 5];
const reversed = numbers.reverse();
// numbers and reversed are both in reversed order [5, 1, 4, 2, 3]
reversed[0] = 5;
console.log(numbers[0]); // 5
Wenn reverse() das ursprüngliche Array nicht verändern, sondern wie andere Array-Methoden (z. B. map()) eine flache Kopie zurückgeben soll, verwenden Sie die Methode toReversed(). Alternativ können Sie vor dem Aufruf von reverse() mit der Spread-Syntax oder Array.from() eine flache Kopie erstellen.
const numbers = [3, 2, 4, 1, 5];
// [...numbers] creates a shallow copy, so reverse() does not mutate the original
const reverted = [...numbers].reverse();
reverted[0] = 5;
console.log(numbers[0]); // 3
reverse() auf Arrays mit Lücken anwenden
Arrays mit Lücken behalten diese auch nach dem Aufruf von reverse(). Leere Einträge werden als leere Einträge an die entsprechenden neuen Indizes übertragen.
console.log([1, , 3].reverse()); // [3, empty, 1]
console.log([1, , 3, 4].reverse()); // [4, 3, empty, 1]
reverse() für Objekte aufrufen, die keine Arrays sind
Die Methode reverse() liest die length-Eigenschaft von this. Anschließend durchläuft sie jede Eigenschaft mit einem ganzzahligen Schlüssel zwischen 0 und length / 2 und vertauscht die beiden entsprechenden Indizes an den gegenüberliegenden Enden. Dabei werden Zieleigenschaften gelöscht, wenn die jeweilige Quelleigenschaft nicht vorhanden war.
const arrayLike = {
length: 3,
unrelated: "foo",
2: 4,
3: 33, // ignored by reverse() since length is 3
};
console.log(Array.prototype.reverse.call(arrayLike));
// { 0: 4, 3: 33, length: 3, unrelated: 'foo' }
// The index 2 is deleted because there was no index 0 present originally
// The index 3 is unchanged since the length is 3
Spezifikationen
| Spezifikation |
|---|
| ECMAScript® 2027 Language Specification> # sec-array.prototype.reverse> |