Start · Sprachen · JavaScript · Referenz · Array.prototype.shift()

Array.prototype.shift()

Methode

Die Methode <code>shift()</code> entfernt das erste Element aus einem Array und gibt es zurück; sie verändert die Länge des Arrays.

Kategorie: method-property

Signatur

shift()

Beschreibung

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.

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

Die Methode pop() hat ein ähnliches Verhalten wie shift(), wird aber auf das letzte Element eines Arrays angewendet.

Die Methode shift() ist eine mutierende Methode. Sie verändert die Länge und den Inhalt von this. Falls du möchtest, dass der Wert von this unverändert bleibt und stattdessen ein neues Array ohne das erste Element zurückgegeben wird, kannst du arr.slice(1) verwenden.

Die Methode shift() ist generisch. Sie erwartet lediglich, dass der this-Wert eine length-Eigenschaft und ganzzahlig indizierte Eigenschaften besitzt. Obwohl Strings ebenfalls array-artig sind, ist diese Methode nicht für sie geeignet, da Strings unveränderlich sind.

Rückgabewert

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

Beispiele

Ein Element aus einem Array entfernen

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

shift() in einer while-Schleife verwenden

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

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

shift() auf Nicht-Array-Objekten aufrufen

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 }