La propriété Array.prototype
représente le prototype du constructeur Array
et permet d'ajouter de nouvelles propriétés à l'ensemble des objets Array
.
// Si JavaScript ne fournit pas de méthode first() // on peut en émuler une if (!Array.prototype.first) { Array.prototype.first = function() { return this[0]; } }
Description
Les instances d'Array
héritent de Array.prototype
. Comme pour tous les constructeurs, vous pouvez changer l'objet prototype du constructeur afin de modifier toutes les instances d'Array
. On peut utiliser cette méthode afin de réaliser des prothèses/polyfills.
Fait peu connu : Array.prototype
est lui-même un objet Array
:
Array.isArray(Array.prototype); // true
Attributs de Array.prototype |
|
---|---|
Écrivable | Non |
Énumérable | Non |
Configurable | Non |
Propriétés
- Array.prototype.constructor
- Cette propriété définit la fonction qui crée le prototype d'un objet.
Array.prototype.length
- Cette propriété renvoie le nombre d'éléments d'un tableau.
Array.prototype[@@unscopables]
- Un symbole contenant les noms des propriétés à exclure lors d'une liaison effectuée avec
with
.
Méthodes
Mutateurs
Ces méthodes modifient le tableau :
Array.prototype.copyWithin()
- Cette méthode copie une série d'éléments de tableau dans le tableau.
Array.prototype.fill()
- Cette méthode remplie tous les éléments d'un tableau avec une même valeur, éventuellement entre un indice de début et un indice de fin.
Array.prototype.pop()
- Cette méthode supprime le dernier élément d'un tableau et retourne cet élément.
Array.prototype.push()
- Cette méthode ajoute un ou plusieurs éléments à la fin d'un tableau et retourne la nouvelle longueur du tableau.
Array.prototype.reverse()
- Cette méthode renverse l'ordre des éléments d'un tableau - le premier élément devient le dernier, et le dernier devient le premier. Le tableau est modifié par cette méthode.
Array.prototype.shift()
- Cette méthode supprime le premier élément d'un tableau et retourne cet élément.
Array.prototype.sort()
- Cette méthode trie en place les éléments d'un tableau et retourne le tableau.
Array.prototype.splice()
- Cette méthode permet d'ajouter ou de retirer des éléments d'un tableau.
Array.prototype.unshift()
- Cette méthode permet d'ajouter un ou plusieurs éléments au début d'un tableau et renvoie la nouvelle longueur du tableau.
Accesseurs
Ces méthodes ne modifient pas l'état du tableau et en retournent une représentation.
Array.prototype.concat()
- Cette méthode renvoie un nouveau tableau constitué de ce tableau concaténé avec un ou plusieurs autre(s) tableau(x) et/ou valeur(s).
Array.prototype.includes()
- Cette méthode détermine si le tableau contient ou non un certain élément. Elle renvoie
true
oufalse
selon le cas de figure. Array.prototype.join()
- Cette méthode concatène tous les éléments d'un tableau en une chaîne de caractère.
Array.prototype.slice()
- Cette méthode extrait une portion d'un tableau pour retourner un nouveau tableau constitué de ces éléments.
Array.prototype.toSource()
- Cette méthode renvoie la représentation littérale du tableau spécifié ; vous pouvez utiliser cette valeur pour créer un nouveau tableau. Elle surcharge la méthode
Object.prototype.toSource()
. Array.prototype.toString()
- Cette méthode renvoie une chaîne de caractères représentant le tableau et ses éléments. Elle surcharge la méthode
Object.prototype.toString()
. Array.prototype.toLocaleString()
- Cette méthode retourne une chaîne de caractères représentant le tableau et ses éléments en tenant compte de la locale. Elle surcharge la méthode
Object.prototype.toLocaleString()
. Array.prototype.indexOf()
- Cette méthode retourne le premier (plus petit) index d'un élément égal à la valeur passée en paramètre à l'intérieur du tableau, ou -1 si aucun n'a été trouvé.
Array.prototype.lastIndexOf()
- Cette méthode retourne le dernier (plus grand) index d'un élément égal à la valeur passée en paramètre à l'intérieur du tableau, ou -1 si aucun n'a été trouvé.
Méthodes itératives
Plusieurs méthodes utilisent des fonctions comme argument. Ces fonctions sont utilisées afin de traiter, d'une façon ou d'une autre, chaque élément du tableau. Lorsque ces méthodes sont invoquées, on évalue la longueur du tableau et on traite chacun des éléments dont l'indice est inférieur à la longueur (les éléments ajoutés en cours de route ne seront pas traités). Les autres modifications apportées au tableau (affecter une valeur ou supprimer un élément) peuvent avoir un impact sur les traitements des éléments suivants. Bien que ce comportement soit bien défini pour les différentes méthodes, afin de ne pas complexifier le code outre-mesure, lorsqu'on modifiera un tableau, on en créera une copie avant d'invoquer une telle méthode.
Array.prototype.forEach()
- Cette méthode appelle une fonction sur chacun des éléments du tableau.
Array.prototype.entries()
- Cette méthode renvoie un nouvel objet
Array Iterator
qui contient les paires clef/valeur pour chaque index du tableau. Array.prototype.every()
- Cette méthode renvoie
true
si chaque élément du tableau satisfait la fonction de test passée en paramètre. Array.prototype.some()
- Cette méthode renvoie
true
si au moins un élément du le tableau satisfait la fonction de test passée en paramètre. Array.prototype.filter()
- Cette méthode crée un nouveau tableau contenant tous les éléments du tableau pour lesquels la fonction de filtrage passée en argument retourne
true
. Array.prototype.find()
- Cette méthode renvoie la valeur d'un élément trouvé dans le tableau et qui satisfait la fonction de test passée en paramètre,
undefined
sinon. Array.prototype.findIndex()
- Cette méthode renvoie l'index d'un élément trouvé dans le tableau qui satisfait la fonction de test passée en paramètre ou -1 si aucun ne la satisfait.
Array.prototype.keys()
- Cette méthode retourne un nouvel
Array Iterator
qui contient les indices pour chaque élément dans le tableau. Array.prototype.map()
- Cette méthode crée un nouveau tableau contenant les images de chaque élément du tableau de départ par la fonction passée en paramètre.
Array.prototype.reduce()
- Cette méthode applique une fonction sur un accumulateur et sur chaque valeur du tableau (de gauche à droite) de façon à obtenir une unique valeur à la fin.
Array.prototype.reduceRight()
- Cette méthode applique une fonction sur un accumulateur et sur chaque valeur du tableau (de droite à gauche) de façon à obtenir une unique valeur à la fin.
Array.prototype.values()
- Cette méthode renvoie un nouvel objet
Array Iterator
qui contient les valeurs de chaque indice du tableau. Array.prototype[@@iterator]()
- Cette méthode renvoie un nouvel objet
Array Iterator
qui contient les valeurs de chaque indice du tableau.
Méthodes génériques (non-standard)
De nombreuses méthodes des objets JavaScript de type Array
sont conçues pour être appliquées de façon générale à tous les objets qui « ressemblent » à des tableaux. C'est à dire qu'elles peuvent être appliquées à n'importe quel objet qui possède une propriété length
, et qui contint des propriétés indexées numériquement (comme lorsque l'on écrit array[5]
). Certaines méthodes, comme join
, se contentent de lire la propriété length
et d'accéder à ces propriétés numériques de l'objet sur lesquelles on les appelle. D'autres, comme reverse
, ont besoin de modifier les propriétés numériques et la longueur d'un objet ; ces méthodes ne peuvent dès lors pas être appelées sur des objets tels que des String
, qui ne permettent pas la modification de leur propriété length
ni de leurs propriétés numériques.
Spécifications
Spécification | Statut | Commentaires |
---|---|---|
ECMAScript 1st Edition (ECMA-262) | Standard | Définition initiale. |
ECMAScript 5.1 (ECMA-262) La définition de 'Array.prototype' dans cette spécification. |
Standard | |
ECMAScript 2015 (6th Edition, ECMA-262) La définition de 'Array.prototype' dans cette spécification. |
Standard | |
ECMAScript 2017 Draft (ECMA-262) La définition de 'Array.prototype' dans cette spécification. |
Projet | Ajout de la méthode includes() . |
Compatibilité des navigateurs
Fonctionnalité | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Support simple | (Oui) | (Oui) | (Oui) | (Oui) | (Oui) |
Fonctionnalité | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Support simple | (Oui) | (Oui) | (Oui) | (Oui) | (Oui) | (Oui) |