Array.prototype.reverse()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Die reverse()
Methode von Array
-Instanzen kehrt ein Array in place um und gibt die Referenz auf dasselbe Array zurück, wobei das erste Array-Element nun das letzte wird und das letzte Element das erste. Mit anderen Worten, die Reihenfolge der Elemente im Array wird in die entgegengesetzte Richtung zu der zuvor angegebenen geändert.
Um die Elemente in einem Array zu umkehren, ohne das ursprüngliche Array zu verändern, verwenden Sie toReversed()
.
Probieren Sie es aus
const array1 = ["one", "two", "three"];
console.log("array1:", array1);
// Expected output: "array1:" Array ["one", "two", "three"]
const reversed = array1.reverse();
console.log("reversed:", reversed);
// Expected output: "reversed:" Array ["three", "two", "one"]
// Careful: reverse is destructive -- it changes the original array.
console.log("array1:", array1);
// Expected output: "array1:" Array ["three", "two", "one"]
Syntax
reverse()
Parameter
Keine.
Rückgabewert
Die Referenz auf das ursprüngliche Array, jetzt umgekehrt. Beachten Sie, dass das Array in place umgekehrt wird und keine Kopie erstellt wird.
Beschreibung
Die reverse()
-Methode vertauscht die Elemente des aufrufenden Array-Objekts direkt, mutiert das Array und gibt eine Referenz auf das Array zurück.
Die reverse()
-Methode behält leere Slots bei. Wenn das Quellarray sparse ist, werden die entsprechenden neuen Indizes der leeren Slots gelöscht und auch zu leeren Slots.
Die reverse()
-Methode ist generisch. Sie erwartet nur, dass der this
-Wert eine length
-Eigenschaft und ganzzahlig indizierte Eigenschaften hat. Obwohl Strings ebenfalls array-ähnlich sind, ist diese Methode nicht geeignet, um auf sie angewendet zu werden, da Strings unveränderlich sind.
Beispiele
Umkehren der Elemente in einem Array
Das folgende Beispiel erstellt ein Array items
, das drei Elemente enthält, und kehrt dann das Array 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 reverse()-Methode gibt die Referenz auf dasselbe Array zurück
Die reverse()
-Methode gibt die Referenz auf das ursprüngliche Array zurück, sodass eine Veränderung des zurückgegebenen Arrays auch das ursprüngliche Array verändert.
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
Falls Sie möchten, dass reverse()
das ursprüngliche Array nicht verändert, sondern ein flach kopiertes Array wie andere Array-Methoden (z.B. map()
) zurückgibt, verwenden Sie die toReversed()
-Methode. Alternativ können Sie vor dem Aufruf von reverse()
eine flache Kopie mittels der Spread-Syntax oder Array.from()
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
Verwendung von reverse() auf Sparse Arrays
Sparse Arrays bleiben sparse, nachdem reverse()
aufgerufen wurde. Leere Slots werden als leere Slots auf ihre jeweiligen neuen Indizes kopiert.
console.log([1, , 3].reverse()); // [3, empty, 1]
console.log([1, , 3, 4].reverse()); // [4, 3, empty, 1]
Aufruf von reverse() auf Nicht-Array-Objekten
Die reverse()
-Methode liest die length
-Eigenschaft von this
. Sie durchsucht dann jede Eigenschaft mit einem ganzzahligen Schlüssel zwischen 0
und length / 2
und vertauscht die zwei entsprechenden Indizes an beiden Enden, wobei jede Zieleigenschaft gelöscht wird, für die die Quell-Eigenschaft nicht existierte.
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
Specification |
---|
ECMAScript® 2025 Language Specification # sec-array.prototype.reverse |