Array.prototype.push()

La méthode push() ajoute un ou plusieurs éléments à la fin d'un tableau et retourne la nouvelle taille du tableau.

Syntaxe

arr.push(élément1, ..., élémentN)

Paramètres

élément1, ...,élémentN
Les éléments à ajouter à la fin du tableau.

Valeur de retour

La nouvelle valeur de la propriété length de l'objet sur lequel la méthode a été appelée.

Description

La méthode push permet d'ajouter des valeurs à un tableau.

push est une méthode générique. Cette méthode peut ainsi être utilisée avec les méthodes Function.call() ou Function.apply() sur des objets similaires aux tableaux.

La méthode push se base sur la propriété length pour déterminer à partir de quel index les valeurs données doivent être insérées. Si la propriété length ne peut pas être convertie en nombre, l'index utilisé est 0. Si la propriété length n'est pas définie, elle est alors créée.

Le seul objet natif ressemblant à un tableau est l'objet String, mais la méthode push y est difficilement applicable, car, en JavaScript, les chaînes de caractères sont immuables.

Exemples

Ajouter des éléments à un tableau

Le code suivant crée un tableau sports contenant à sa création deux éléments, auxquels sont ajoutés deux nouveaux éléments. La variable total contient la nouvelle taille du tableau.

var sports = ["plongée", "baseball"];
var total = sports.push("football", "tennis");

console.log(sports); // ["plongée", "baseball", "football", "tennis"]
console.log(total);  // 4

Fusionner deux tableaux

Dans l'exemple qui suit, on utilise la méthode Function.apply() pour ajouter les différents éléments d'un second tableau

var légumes = ['navet', 'pomme de terre'];
var autresLégumes = ['céleri', 'radis'];

// On fusionne les deux tableaux
// Équivalent à légumes.push('céleri', 'radis');
Array.prototype.push.apply(légumes, autresLégumes);

console.log(légumes); // ['navet', 'pomme de terre', 'céleri', 'radis']

Utiliser un objet comme on utiliserait un tableau

Comme nous l'avons vu auparavant, push est une méthode générique et nous pouvons donc utiliser Array.prototype.push sur les objets. On notera qu'il n'est pas nécessaire de stocker un ensemble d'objets. En fait, on enregistre l'ensemble dans l'objet et on utilise call sur Array.prototype.push :

var obj = {
    length: 0,

    ajoutElem: function ajoutElem (elem) {
        // obj.length est automatiquement incrémenté
        // quand on ajoute un élément
        [].push.call(this, elem);
    }
};

// Ajoutons quelques objets vides pour illustrer
// l'exemple.
obj.ajoutElem({});
obj.ajoutElem({});
console.log(obj.length);
// → 2

Spécifications

Spécification État Commentaires
ECMAScript 3rd Edition (ECMA-262) Standard Définition initiale. Implémentée avec JavaScript 1.2.
ECMAScript 5.1 (ECMA-262)
La définition de 'Array.prototype.push' dans cette spécification.
Standard  
ECMAScript 2015 (6th Edition, ECMA-262)
La définition de 'Array.prototype.push' dans cette spécification.
Standard  
ECMAScript 2017 Draft (ECMA-262)
La définition de 'Array.prototype.push' dans cette spécification.
Projet  

Compatibilité des navigateurs

Fonctionnalité Chrome Firefox (Gecko) Internet Explorer Opera Safari
Support simple 1.0 1.0 (1.7 ou moins) 5.5 (Oui) (Oui)
Fonctionnalité Android Chrome pour Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Support simple (Oui) (Oui) (Oui) (Oui) (Oui) (Oui)

Voir aussi

Étiquettes et contributeurs liés au document

 Contributeurs à cette page : SphinxKnight, teoli, gsanson
 Dernière mise à jour par : SphinxKnight,