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 ».