JavaScriptTableaux

Array.prototype.fill()

Remplit un tableau (ou une partie de celui-ci) avec une seule valeur.

Renvoie
Ce même tableau, rempli.
Modifie l’original
Oui
Sur cette page

Exemple

#
JavaScript
console.log(new Array(5).fill(0))
console.log([1, 2, 3, 4, 5].fill('x', 1, 3))
Console
[0, 0, 0, 0, 0]
[1, 'x', 'x', 4, 5]

Définition et utilisation

#

La méthode fill(value, start, end) écrit la valeur donnée dans tous les éléments du tableau, ou dans une portion de start à end. Elle modifie le tableau d’origine et le renvoie.

Elle sert surtout à préparer un tableau de longueur connue : new Array(7).fill(0) crée sept zéros, par exemple comme compteur pour les jours de la semaine.

Attention aux objets : fill({}) place le même objet à chaque emplacement, donc modifier un élément les modifie tous. Pour créer des objets distincts, utilisez Array.from({ length }, () => ({})).

Syntaxe

#
Syntaxe
array.fill(value)
array.fill(value, start)
array.fill(value, start, end)

Paramètres

#
  • value

    valeur quelconque

    Valeur à écrire.
  • start

    optionnel

    Indice de début, 0 par défaut.
  • end

    optionnel

    Indice de fin (exclu), par défaut la longueur du tableau.

Plus d’exemples

#
Piège avec les objets
JavaScript
const shared = new Array(2).fill({ done: false })
shared[0].done = true
console.log(shared)

const separate = Array.from({ length: 2 }, () => ({ done: false }))
separate[0].done = true
console.log(separate)
Console
[{ done: true }, { done: true }]
[{ done: true }, { done: false }]

Compatibilité des navigateurs

#

Largement disponible

Fonctionne dans tous les navigateurs modernes, y compris sur mobile. Vous pouvez l’utiliser sans crainte.

  • Chrome
  • Edge
  • Firefox
  • Safari

Bonnes pratiques

#
  • Pour remplir avec des objets, utilisez Array.from() avec une fonction, afin que chaque élément soit un objet distinct.
  • fill() modifie le tableau sur place ; ne l’appelez donc pas sur des données que vous ne voulez pas changer.

Entrées associées

#

Vous voyez une erreur ou il manque un exemple ? Écrivez-nous.