Array.prototype.shift()

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 Methode shift() von Array-Instanzen entfernt das erste Element aus einem Array und gibt dieses entfernte Element zurück. Diese Methode verändert die Länge des Arrays.

Probieren Sie es aus

const array1 = [1, 2, 3];

const firstElement = array1.shift();

console.log(array1);
// Expected output: Array [2, 3]

console.log(firstElement);
// Expected output: 1

Syntax

js
shift()

Parameter

Keine.

Rückgabewert

Das entfernte Element des Arrays; undefined, wenn das Array leer ist.

Beschreibung

Die Methode shift() verschiebt alle Werte um 1 nach links und reduziert die Länge um 1, wodurch das erste Element entfernt wird. Falls die length-Eigenschaft 0 ist, wird undefined zurückgegeben.

Die Methode pop() verhält sich ähnlich wie shift(), wird jedoch auf das letzte Element eines Arrays angewandt.

Die Methode shift() ist eine verändernde Methode. Sie ändert die Länge und den Inhalt von this. Falls Sie den Wert von this beibehalten und stattdessen ein neues Array mit entferntem ersten Element zurückgeben möchten, können Sie arr.slice(1) verwenden.

Die Methode shift() ist generisch. Sie erwartet nur, dass der Wert von this eine length-Eigenschaft und integer-indizierte Eigenschaften hat. Obwohl Zeichenketten ebenfalls array-ähnlich sind, ist diese Methode nicht dafür geeignet, auf sie angewandt zu werden, da Zeichenketten unveränderlich sind.

Beispiele

Entfernen eines Elements aus einem Array

Der folgende Code zeigt das myFish-Array vor und nach dem Entfernen seines ersten Elements. Außerdem zeigt es das entfernte Element:

js
const myFish = ["angel", "clown", "mandarin", "surgeon"];

console.log("myFish before:", myFish);
// myFish before: ['angel', 'clown', 'mandarin', 'surgeon']

const shifted = myFish.shift();

console.log("myFish after:", myFish);
// myFish after: ['clown', 'mandarin', 'surgeon']

console.log("Removed this element:", shifted);
// Removed this element: angel

Verwendung der shift()-Methode in einer while-Schleife

Die Methode shift() wird häufig in der Bedingung innerhalb einer while-Schleife verwendet. Im folgenden Beispiel entfernt jede Iteration das nächste Element aus einem Array, bis es leer ist:

js
const names = ["Andrew", "Tyrone", "Paul", "Maria", "Gayatri"];

while (typeof (i = names.shift()) !== "undefined") {
  console.log(i);
}
// Andrew, Tyrone, Paul, Maria, Gayatri

Aufruf von shift() auf Nicht-Array-Objekten

Die Methode shift() liest die length-Eigenschaft von this. Falls die normalisierte Länge 0 ist, wird length erneut auf 0 gesetzt (während sie möglicherweise negativ oder undefined war). Andernfalls wird die Eigenschaft bei 0 zurückgegeben und der Rest der Eigenschaften um eins nach links verschoben. Die Eigenschaft bei length - 1 wird gelöscht, und die length-Eigenschaft wird um eins verringert.

js
const arrayLike = {
  length: 3,
  unrelated: "foo",
  2: 4,
};
console.log(Array.prototype.shift.call(arrayLike));
// undefined, because it is an empty slot
console.log(arrayLike);
// { '1': 4, length: 2, unrelated: 'foo' }

const plainObj = {};
// There's no length property, so the length is 0
Array.prototype.shift.call(plainObj);
console.log(plainObj);
// { length: 0 }

Spezifikationen

Specification
ECMAScript® 2025 Language Specification
# sec-array.prototype.shift

Browser-Kompatibilität

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
shift

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

Siehe auch