String.prototype.repeat()

Renvoie une nouvelle chaîne composée du nombre indiqué de répétitions de l’original.

Renvoie
Une nouvelle chaîne contenant count copies de l’original.
Modifie l’original
Non
Sur cette page

Exemple

#
JavaScript
console.log('=-'.repeat(10))
console.log('★'.repeat(4))
console.log('ha'.repeat(3))
Console
=-=-=-=-=-=-=-=-=-=-
★★★★
hahaha

Définition et utilisation

#

La méthode repeat() assemble une chaîne avec elle-même autant de fois que vous l’indiquez. "ab".repeat(3) donne "ababab", et repeat(0) renvoie une chaîne vide.

Elle sert à générer des séparateurs, des indentations, des barres de progression simples, des étoiles dans des évaluations, ou à masquer un fragment de texte. Au lieu d’une boucle qui concatène des caractères, un seul appel suffit.

Le nombre de répétitions doit être non négatif et fini. Une valeur négative ou Infinity provoque une erreur RangeError, et les décimales sont tronquées, donc 2.7 se comporte comme 2. L’original reste inchangé.

Syntaxe

#
Syntaxe
string.repeat(count)

Paramètres

#
  • count

    number

    Nombre de répétitions, à partir de 0. Une valeur décimale est tronquée, et une valeur négative ou infinie lève une RangeError.

Plus d’exemples

#
Une barre de progression
JavaScript
function progressBar(done, total) {
  const filled = Math.round((done / total) * 10)
  return '█'.repeat(filled) + '░'.repeat(10 - filled) + ` ${done}/${total}`
}

console.log(progressBar(3, 10))
console.log(progressBar(7, 7))
Console
███░░░░░░░ 3/10
██████████ 7/7
Indentation dans l’arborescence d’un cours
JavaScript
const tree = [
  ['Cours', 0],
  ['Module 1', 1],
  ['Leçon 1', 2],
  ['Module 2', 1]
]

for (const [label, depth] of tree) {
  console.log(' '.repeat(depth * 2) + label)
}
Console
Cours
Module 1
Leçon 1
Module 2
Décimales, zéro et valeurs négatives
JavaScript
console.log('ab'.repeat(2.7))
console.log('ab'.repeat(0).length)

try {
  'ab'.repeat(-1)
} catch (error) {
  console.log(error.name)
}
Console
abab
0
RangeError

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

#
  • Un nombre de répétitions calculé à partir de données, comme 10 - filled, peut devenir négatif. Protégez-le avec Math.max(0, n) pour éviter une RangeError.
  • Un nombre de répétitions très élevé crée une chaîne énorme et peut bloquer la page. Le moteur a lui aussi une limite supérieure de longueur de chaîne.

Entrées associées

#

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