La méthode fill() remplit tout les éléments d'un tableau entre deux index avec une valeur statique.
var nombres = [1, 2, 3] nombres.fill(1); // le résultat est [1, 1, 1]
Syntaxe
arr.fill(valeur[, début = 0[, fin = this.length]])
Paramètres
valeur- Valeur avec laquelle remplir le tableau.
début- Index de début.
fin- Index de fin.
Valeur de retour
Le tableau modifié par la méthode.
Description
Les éléments pour lesquels on utilisera la valeur sont ceux contenus dans l'intervalle de positions [début, fin].
La méthode fill() prend jusqu'à trois arguments : valeur, début et fin. Les arguments début et fin sont optionnels. Leurs valeurs par défaut sont respectivement 0 et la taille length de l'objet this.
Si début est négatif, il sera traité comme length+début où length est la taille du tableau. Si fin est négatif, il est traité comme length+fin.
La fonction fill() est intentionnellement générique, il n'est pas nécessaire que sa valeur this soit un objet Array.
La méthode fill() est une méthode de modification, elle changera l'objet this lui-même, et renverra l'objet modifié. Elle ne crée pas de copie.
Exemples
[1, 2, 3].fill(4); // [4, 4, 4]
[1, 2, 3].fill(4, 1); // [1, 4, 4]
[1, 2, 3].fill(4, 1, 2); // [1, 4, 3]
[1, 2, 3].fill(4, 1, 1); // [1, 2, 3]
[1, 2, 3].fill(4, -3, -2); // [4, 2, 3]
[1, 2, 3].fill(4, NaN, NaN); // [1, 2, 3]
Array(3).fill(4); // [4, 4, 4]
[].fill.call({length: 3}, 4); // {0: 4, 1: 4, 2: 4, length: 3}
Prothèse d'émulation (polyfill)
if (![].fill) {
Array.prototype.fill = function(valeur) {
// Steps 1-2.
var O = Object(this);
// Steps 3-5.
var len = parseInt(O.length);
// Steps 6-7.
var debut = arguments[1];
var debutRelatif = parseInt(debut) || 0;
// Step 8.
var k = debutRelatif < 0
? Math.max(len + debutRelatif, 0)
: Math.min(debutRelatif, len);
// Steps 9-10.
var fin = arguments[2];
var finRelative = fin === undefined
? len
: (parseInt(fin) || 0);
// Step 11.
var final = finRelative < 0
? Math.max(len + finRelative, 0)
: Math.min(finRelative, len);
// Step 12.
for (; k < final; k++) {
O[k] = valeur;
}
// Step 13.
return O;
};
}
Spécifications
| Spécification | État | Commentaires |
|---|---|---|
| ECMAScript 2015 (6th Edition, ECMA-262) La définition de 'Array.prototype.fill' dans cette spécification. |
Standard | Définition initiale. |
| ECMAScript 2017 Draft (ECMA-262) La définition de 'Array.prototype.fill' dans cette spécification. |
Projet |
Compatibilité des navigateurs
| Fonctionnalité | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|
| Support simple | 45 [1] | 31 (31) | Pas de support | Pas de support | 7.1 |
| Fonctionnalité | Android | Chrome pour Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|---|
| Support simple | Pas de support | Pas de support | 31.0 (31) | Pas de support | Pas de support | 8.0 |
[1] À partir de Chrome 36, cette fonctionnalité était disponible via une préférence. Sous chrome://flags, il fallait activer l'élément « Activer la fonctionnalité expérimentale JavaScript ».