プログラムを書いていると、ある回数分ループする処理をハードコーディングしたいときってありますよね。
何も考えずに書くと、for文で実装すると思いますが、もう少し簡潔に書けないものかと思って調べました。
結論
ES2015のspread operatorを使ってループさせたい回数nの配列を作り、map(またはforEach)を使ってループさせる。
[...Array(5)].map(() => console.log('5回実行'))
// counterが必要な場合
[...Array(5)].map((_, i) => console.log(i))
議論
ことの発端としては、rubyだとn.times doという書き方ができるのを知っていたので、jsで似たような実装(自前でtimesみたいな関数を作らずに)ができないものか、と思ったことです。
調べてみると、同じような疑問を持った人がいたようです↓
Is there a mechanism to loop x times in ES6 (ECMAScript 6) without mutable variables?
多くの回答がありますが、上記で結論としている方法が個人的にわかりやすいと思った方法です。他には、lodashの
_.times()
を使う方法や、 Array(n).fill()
で配列を作る方法などが紹介されていました。