83 votes

Idiome pour "répéter n fois" ?

Voici une façon quelque peu inutile et peu pratique de produire un tableau de 3 nombres aléatoires en JS :

[1, 1, 1].map(Math.random) // Outputs: [0.63244645928, 0.59692098067, 0.73627558014]

L'utilisation d'un tableau fictif (par ex. [1, 1, 1] ), afin de pouvoir appeler map sur elle, est -- pour des n -- à la fois inutile (en termes de mémoire) et peu pratique.

Ce que l'on souhaiterait, c'est une sorte d'hypothèse :

repeat(3, Math.random) // Outputs: [0.214259553965, 0.002260502324, 0.452618881464]

Qu'est-ce qui se rapproche le plus de ce que l'on peut faire en utilisant du JavaScript classique ?

Je connais des bibliothèques comme Underscore, mais j'essaie d'éviter les bibliothèques ici.

J'ai examiné les réponses aux questions suivantes Répéter une chaîne de caractères un certain nombre de fois mais elle n'est pas applicable en général. Par exemple :

Array(3).map(Math.random) // Outputs: [undefined, undefined, undefined]
Array(4).join(Math.random()) // Outputs a concatenation of a repeated number
Array(3).fill(Math.random()) // Fills with the same number

Plusieurs autres réponses proposent de modifier une classe intégrée ; une pratique que je considère comme totalement inacceptable.

5voto

Rafael Motta Points 1206

J'aime cette façon de faire :

[...Array(5).keys()].forEach(index =>
  console.log(`do something ${index}`
)

0voto

Vous pouvez procéder comme suit :

Iet res = 'n'.repeat(3).split('').map(Math.random)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X