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 shift()
-Methode von Array
-Instanzen entfernt das erste
Element aus einem Array und gibt dieses entfernte Element zurück. Diese Methode ä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
shift()
Parameter
Keine.
Rückgabewert
Das entfernte Element aus dem Array; undefined
wenn das Array leer ist.
Beschreibung
Die shift()
-Methode verschiebt alle Werte um 1 nach links und verringert die Länge um 1, wodurch das erste Element entfernt wird. Wenn die Länge
-Eigenschaft 0 ist, wird undefined
zurückgegeben.
Die pop()
-Methode weist ein ähnliches Verhalten wie shift()
auf, wird jedoch auf das letzte Element eines Arrays angewendet.
Die shift()
-Methode ist eine mutierende Methode. Sie ändert die Länge und den Inhalt von this
. Falls Sie möchten, dass der Wert von this
gleich bleibt, aber ein neues Array mit dem entfernten ersten Element zurückgeben möchten, können Sie stattdessen arr.slice(1)
verwenden.
Die shift()
-Methode ist generisch. Sie erwartet nur, dass der this
-Wert eine length
-Eigenschaft und integerindizierte Eigenschaften hat. Obwohl Strings auch array-ähnlich sind, ist diese Methode nicht geeignet, auf ihnen angewendet zu werden, da Strings unveränderlich sind.
Beispiele
Ein Element aus einem Array entfernen
Der folgende Code zeigt das myFish
-Array vor und nach dem Entfernen seines
ersten Elements. Es wird auch das entfernte Element angezeigt:
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 shift()-Methode wird oft als Bedingung innerhalb einer while-Schleife verwendet. Im folgenden Beispiel wird bei jeder Iteration das nächste Element aus einem Array entfernt, bis es leer ist:
const names = ["Andrew", "Tyrone", "Paul", "Maria", "Gayatri"];
while (typeof (i = names.shift()) !== "undefined") {
console.log(i);
}
// Andrew, Tyrone, Paul, Maria, Gayatri
Aufrufen von shift() auf Nicht-Array-Objekten
Die shift()
-Methode liest die length
-Eigenschaft von this
. Wenn die normalisierte Länge 0 ist, wird length
erneut auf 0
gesetzt (obwohl sie vorher negativ oder undefined
sein könnte). Andernfalls wird die Eigenschaft bei 0
zurückgegeben, und die restlichen Eigenschaften werden um eins nach links verschoben. Die Eigenschaft bei length - 1
wird gelöscht, und die length
-Eigenschaft wird um eins verringert.
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 |