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.

La méthode shift() permet de retirer le premier élément d'un tableau et de renvoyer cet élément. Cette méthode modifie la longueur du tableau.

Exemple interactif

Syntaxe

js
arr.shift();

Valeur de retour

L'élément retiré du tableau ou undefined si le tableau est vide.

Description

La méthode shift retire l'élément situé à l'index zéro et décrémente l'index des éléments suivant avant de retourner l'élément supprimé. Si la propriété length vaut 0, undefined est retourné.

Cette méthode est générique et peut être appelée ou appliquée sur des objets similaires à des tableaux.

Cette méthode n'est pas exploitable pour les objets dont la propriété length ne reflète pas la taille du contenu, ou pour lesquels la propriété length n'est pas définie.

Note : La méthode Array.prototype.pop() possède un comportement similaire mais retire le dernier élément du tableau (et non le premier).

Exemples

Supprimer un élément d'un tableau

Le code suivant affiche le tableau mesPoissons avant et après avoir enlevé le premier élément. Il affiche aussi l'élément supprimé :

js
var mesPoissons = ["ange", "clown", "mandarin", "chirurgien"];

console.log("mesPoissons avant : " + JSON.stringify(mesPoissons));
// mesPoissons avant : ["ange","clown","mandarin","chirurgien"]

var premierÉlément = mesPoissons.shift();

console.log("mesPoissons après :", mesPoissons);
// mesPoissons après : ["clown", "mandarin", "chirurgien"]

console.log("Cet élément a été enlevé :", premierÉlément);
// "Cet élément a été enlevé : ange"

Utiliser shift() dans une boucle while

La méthode shift() peut être utilisée dans une boucle while. Dans l'exemple suivant, chaque itération de la boucle retire un élément du tableau et l'affiche dans la console, jusqu'à ce que ce dernier soit vide.

js
var noms = ["André", "Édouard", "Paul", "Christophe", "Jean"];
while ((i = noms.shift()) !== undefined) {
  console.log(i);
}
// André, Édouard, Paul, Christophe, Jean

Spécifications

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

Compatibilité des navigateurs

BCD tables only load in the browser

Voir aussi