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
Syntax
shift()
Parameter
Keine.
Rückgabewert
Das entfernte Element aus dem Array; undefined
, wenn das Array leer ist.
Beschreibung
Die shift()
Methode entfernt das Element am Null-Index und verschiebt die Werte an aufeinanderfolgenden Indizes nach unten und gibt dann den entfernten Wert zurück. Wenn die length
Eigenschaft 0 ist, wird undefined
zurückgegeben.
Die pop()
Methode verhält sich ähnlich wie shift()
, wird jedoch auf das letzte Element in einem Array angewendet.
Die shift()
Methode ist eine verändernde Methode. Sie ändert die Länge und den Inhalt von this
. Falls Sie möchten, dass der Wert von this
derselbe bleibt, aber ein neues Array mit dem ersten entfernten Element zurückgegeben wird, können Sie stattdessen arr.slice(1)
verwenden.
Die shift()
Methode ist generisch. Sie erwartet nur, dass der this
Wert eine length
Eigenschaft und integer-indizierte Eigenschaften hat. Obwohl Strings auch array-ähnlich sind, ist diese Methode nicht für Strings geeignet, da Strings 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. Es zeigt auch das entfernte Element an:
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 in einer While-Schleife verwendet. Im folgenden Beispiel entfernt jede Iteration das nächste Element aus einem Array, 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
wieder auf 0
gesetzt (obwohl sie negativ oder undefined
sein kann). Andernfalls wird die Eigenschaft bei 0
zurückgegeben, und die restlichen Eigenschaften werden um eins nach links verschoben. 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 Language Specification # sec-array.prototype.shift |
Browser-Kompatibilität
BCD tables only load in the browser