# JavaScriptのforEach内で「continue」や「break」のような動作をさせる方法 URL: https://webrandum.net/javascript-foreach-continue-break/ 公開日: 2022-05-11 更新日: 2022-05-11 カテゴリー: コーディング タグ: JavaScript 出典: Webrandum(著者: サイトウ マサカズ) 配列でループ処理をしたいとき、`forEach`を使うとかなりラクに実装できます。 ただし、`forEach`内では`continue`や`break`が使えません。 今回はその代替となる方法をまとめておきます。 ## forEachについて `forEach`を使うと、配列に含まれる要素を順に取り出してコールバック関数に渡して処理ができます。 ``` let days = ['日', '月' ,'火', '水', '木', '金', '土']; days.forEach((day, index) =>{ console.log(day); }); ``` これで配列がループされて、コンソールに各配列の値が表示されます。 ``` 日 月 火 水 木 金 土 ``` ## continueと同じ動きにする `forEach`内で`return`すると、その時点で次のループへスキップされます。 ``` let days = ['日', '月' ,'火', '水', '木', '金', '土']; days.forEach((day, index) =>{ if(index === 1){ return; // 「月」のみスキップされる } console.log(day); }); ``` これで「月」のみスキップされます。 ``` 日 火 水 木 金 土 ``` ちなみに、`return`でも`return true`でも`return false`でも関係なくすべて同じ結果になります。 ## breakと同じ動きにする `break`と同じ動きは`forEach`ではできないため、`some`を利用します。 使い方は`forEach`とほとんど変わりませんが、`true`を返すとその時点で処理が終了する特性を持っています。 ``` let days = ['日', '月' ,'火', '水', '木', '金', '土']; days.forEach((day, index) =>{ if(index === 1){ return true; // 「月」の時点で終了する } console.log(day); }); ``` これで「月」の時点で終了するので、「日」のみがコンソールに出力されます。 ``` 日 ``` ただ、`some`は本来テスト関数として定義されていて本来の使い方とは違いますし、名前からしてループ処理だと判断しにくいのでオススメはしません。 そこまでするくらいだったら素直に`for`にして`break`を使った方がよさそうです。