JavaScript で N 回ループ
はじめに
Ruby の 5.times
のように、JavaScript で簡単に指定回数(N回)のループを行う方法を調べた。
TL;DR
- スプレッド構文(
...
)を使う[...Array(10)].forEach
,[...Array(10)].map
, etc
Array.fill
を使うArray(10).fill().forEach
, etc
Array.from
を使うArray.from({ length: 10 }).forEach
, etc
- スプレッド構文,
Array.fill
は IE 非対応なので注意 (2020/01/10 現在)
目次
詳細
N 回ループして forEach
やら map
やらを使いたいことがあったので調べた。
(下記のように for
文使えば実現できるんだけど、もっと楽がしたかった)
1 | let ary = []; |
スプレッド構文を使う
参考: JavaScriptで指定したN回分ループする - Qiita
スプレッド構文を使って [...Array(5)].xxxx
(xxxx
は forEach
とか map
とか) をすると、比較的簡単に N 回ループを実現できる。
1 | [...Array(10)].forEach(() => console.log('hello')); |
forEach
などの第一引数には何も入っていない(undefined
)ため、インデックスを利用したい場合には第二引数を使う。
※forEach
に標準で用意されている引数。
1 | // NG |
Array.fill を使う
スプレッド構文わかりにくいとか、使いにくいとか言う人向けの別のやり方1。
Array.fill
を使う。
1 | Array(10).fill().forEach((_, i) => console.log('hello')); |
Array(10).fill()
の戻り値は以下。
1 | Array(10).fill(); |
Array.from を使う
スプレッド構文わかりにくいとか、使いにくいとか言う人向けの別のやり方2。
Array.from
を使う。
1 | Array.from({ length: 10 }).forEach((_, i) => console.log('hello')); |
Array.from({ length: 10 })
の戻り値も Array(10).fill()
と同じく undefined
の配列。
1 | Array.from({ length: 10 }); |
まとめ
- スプレッド構文(
...
)を使う[...Array(10)].forEach
,[...Array(10)].map
, etc
Array.fill
を使うArray(10).fill().forEach
, etc
Array.from
を使うArray.from({ length: 10 }).forEach
, etc
- スプレッド構文,
Array.fill
は IE 非対応なので注意 (2020/01/10 現在)
その他・メモ
スプレッド構文についての詳しいことは、下記を見ると良さそう。
参考文献
- JavaScriptで指定したN回分ループする - Qiita
- スプレッド構文 - JavaScript | MDN
- Array - JavaScript | MDN
- Array.from() - JavaScript | MDN
- Array.prototype.fill() - JavaScript | MDN
- javascript - Is there a mechanism to loop x times in ES6 (ECMAScript 6) without mutable variables? - Stack Overflow
- 【JavaScript】スプレッド構文の便利な使い方まとめ - Qiita
関連記事
- JavaScript で URL のクエリパラメータを操作する方法
- jQuery Select2 で、初期値の設定と選択状態のクリア
- axios で添付ファイルありのリクエスト(multipart/form-data の POST)
- JavaScript で画像をローカルにダウンロード
- JavaScript で複数画像を zip に圧縮してローカルにダウンロード
- HTML img タグで画像が 404 エラーのときに代替画像を表示する方法
- Laravel で現在の URL 取得方法まとめ
- Laravel で Cookie を使う(参照/設定/削除)