JavaScriptのforEach内で「continue」や「break」のような動作をさせる方法

配列でループ処理をしたいとき、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を使った方がよさそうです。

HTML・CSSでWebサイト制作を行う際に必要なツール
SafariのURLメニュー部分も考慮できるCSSの単位「dvh」
Nuxt.jsでaxios-moduleを使ってAPIからデータを取得・表示する|Nuxt.jsの基本
Webデザイナーを目指す専門学生が技術ブログを書くメリット
iTerm2で起動時に左上に表示される「Tip of the Day(今日のTip)」を非表示にする方法
Backlogで2段階認証を設定後、SourceTreeでアカウントエラーが発生する場合の対処法
WordPressのカスタム投稿タイプを追加後、ページは存在しているはずなのに404になる場合の解決方法
Dart Sassの変数の基本的な使い方|Dart Sass入門
Visual Studio Codeでできる最低限のGit操作方法
Vue.jsのv-forで生成した要素をクリックするたびに、classをトグルで付け外しする方法
AirPodsで片耳を外しても再生が止まらないようにする方法
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
「とりあえず無料版!」ではなく、機能を知った上で判断したいMAMPとMAMP PROの比較
Macでデュアルディスプレイ時に、通知を表示するディスプレイを指定する方法
macOS 11 Big Sur以降メニューバー右上に固定表示されてしまう時計表示を目立たなくする
Karabiner-Elementsでcommand単体押しで英かなキーを送信するように設定するとcommand + クリックが効かなくなる問題の修正
Macのアプリインストールとアンインストール方法まとめ
Google日本語入力の辞書をATOKにインポートする方法
HyperSwitchで「This beta version has expired」と表示される場合は、公式サイトから再度インストールしてアップデート
Keyboard Maestroの「Macro Debugger」で複雑なマクロのデバッグを行う方法
アプリやフォルダを一気に開ける「Workspaces」の環境設定
Dropbox Ignore node_modulesを使って「node_modules」を「同期の無視」に追加する方法