navigation Navigation


Array.prototype.shift()


Die Methode Array.prototype.shift() ist das funktionale Gegenstück zu pop() in JavaScript. Während pop() das letzte Element eines Arrays entfernt, wird mit shift() das erste Element entfernt und zurückgegeben. Dabei wird das Array direkt verändert (mutiert), und alle nachfolgenden Elemente werden im Index um eins verschoben.

Diese Methode eignet sich besonders für die Umsetzung von FIFO-Strukturen (First In, First Out), z.B. bei Warteschlangen, Eventverarbeitung oder Streaming-Daten.

Die Methode Array.prototype.shift() entfernt das erste Element eines Arrays und gibt dieses entfernte Element zurück. Die Methode verändert das Array in-place.

Syntax

Syntax
Array.prototype.shift();

Rückgabewert

Die Methode gibt das entfernte, erste Element des Arrays. Wenn das Array leer ist, gibt die Methode undefined zurück.

Beispiele

Einfache Verwendung

Beispiel
let colors = ["red", "green", "blue"];
let removedColor = colors.shift();

console.log(colors);
console.log(removedColor);
['green', 'blue']
'red'

Verwendung in einer Warteschlange

Solche Schleifen sind klassisch für die Verarbeitung von Warteschlangen: Was zuerst reinkommt, wird zuerst verarbeitet (FIFO-Prinzip).

Beispiel
const tasks = ['Aufgabe_1', 'Aufgabe_2', 'Aufgabe_3'];

while (tasks.length > 0) {
    const next = tasks.shift();
    console.log('Verarbeite:', next);
}
Verarbeite: Aufgabe_1
Verarbeite: Aufgabe_2
Verarbeite: Aufgabe_3

Leeres Array

Bei einem leeren Array gibt shift() undefined zurück und verändert nichts.

Beispiel
const leer = [];
const result = leer.shift();

console.log(result);
console.log(leer);
undefined
[]

Dynamische Verarbeitung von Input-Daten

Beispiel
const inputs = ['Eingabe_1', 'Eingabe_2'];

function processInput() {
    const input = inputs.shift();
    if (input) {
        console.log('Verarbeite:', input);
    } else {
        console.log('Keine Eingaben mehr');
    }
}

processNextInput();
processNextInput();
processNextInput();
Verarbeite: Eingabe_1
Verarbeite: Eingabe_2
Keine Eingaben mehr