Cette page a été traduite à partir de l'anglais par la communauté.Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.
Array : méthode shift()
Baseline Widely available
Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.
La méthodeshift() des instancesArray supprime lepremier élément d'un tableau et retourne cet élément supprimé. Cette méthode modifie la longueur du tableau.
Dans cet article
Exemple interactif
const array1 = [1, 2, 3];const firstElement = array1.shift();console.log(array1);// Résultat attendu : Array [2, 3]console.log(firstElement);// Résultat attendu : 1Syntaxe
shift()Paramètres
Aucun.
Valeur de retour
L'élément retiré du tableau ouundefined si le tableau est vide.
Description
La méthodeshift() décale toutes les valeurs vers la gauche de 1 et décrémente la longueur de 1, résultant en la suppression du premier élément. Si lalength propriété est 0,undefined est retourné.
La méthodepop() a un comportement similaire àshift(), mais s'applique au dernier élément d'un tableau.
La méthodeshift() est uneméthode mutatrice. Elle modifie la longueur et le contenu dethis. Si vous souhaitez que la valeur dethis reste inchangée mais obtenir un nouveau tableau sans le premier élément, vous pouvez utiliserarr.slice(1) à la place.
La méthodeshift() estgénérique. Elle attend uniquement que la valeur dethis possède une propriétélength et des propriétés indexées par des entiers. Bien que les chaînes soient également assimilables à des tableaux, cette méthode ne leur convient pas, car les chaînes sont immuables.
Exemples
>Supprimer un élément d'un tableau
Le code suivant affiche le tableaumesPoissons avant et après avoir enlevé le premier élément. Il affiche aussi l'élément supprimé :
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"Utilisershift() dans une bouclewhile
La méthodeshift() peut être utilisée dans une bouclewhile. 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.
var noms = ["André", "Édouard", "Paul", "Christophe", "Jean"];while ((i = noms.shift()) !== undefined) { console.log(i);}// André, Édouard, Paul, Christophe, JeanAppelershift() sur des objets qui ne sont pas des tableaux
La méthodeshift() lit la propriétélength dethis. Si lalongueur normalisée vaut 0,length est de nouveau définie à0 (alors qu'elle peut être négative ouundefined auparavant). Sinon, la propriété à0 est retournée, et le reste des propriétés est décalé d'un indice vers la gauche. La propriété àlength - 1 estsupprimée, et la propriétélength est décrémentée de 1.
const objetSimilaireTableau = { length: 3, unrelated: "foo", 2: 4,};console.log(Array.prototype.shift.call(objetSimilaireTableau));// undefined, car il s'agit d'une case videconsole.log(objetSimilaireTableau);// { '1': 4, length: 2, unrelated: 'foo' }const plainObj = {};// Il n'y a pas de propriété `length`, donc `length` vaut 0Array.prototype.shift.call(plainObj);console.log(plainObj);// { length: 0 }Spécifications
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-array.prototype.shift> |
Compatibilité des navigateurs
Voir aussi
- Guide des collections indexées
- L'objet global
Array - La méthode
Array.prototype.push() - La méthode
Array.prototype.pop() - La méthode
Array.prototype.unshift() - La méthode
Array.prototype.concat() - La méthode
Array.prototype.splice()