【JavaScript】forEach is not a functionというエラーが出力されたら
テクノロジー
2019/07/31
症状
objs.forEach(obj => {
/* 処理 */
} );
こう書いて実行したところ…
Error: Uncaught TypeError: objs.forEach is not a function
怒られました。
解決方法
配列風オブジェクトでforEachが使いたい場合、このように記載するようです。
Array.prototype.forEach.call(objs => {
/* 処理 */
} );
配列風オブジェクトとはこんなやつ。
なんでこんなオブジェクト扱ったのかは、いまとなっては不明です。
{
0: Apple,
1: Banana,
2: chocolate,
length: 3,
};
for...of が使える
for...of文でも同じことができます。
for(let obj of objs) {
/* 処理 */
}
- 関数を書かなくていい
- break,continue,returnが使える
というメリットがあります。
forEach以外のループも検討してみてください。
* * *
参考記事: forEach is not a function error with JavaScript array - Stack Overflow
- この記事を共有する
とろ(microayatron)
Webアプリケーションのプログラマ(フロントエンドエンジニア) Angular(TypeScript) / Next.js / Cypress を主に使用。
前職はピアノ技術者(調律師)。2017年からブログ「trog」を運営。
あざらしと音楽が好き。
trogではプッシュ通知機能を提供しています。
新しい記事が投稿されたタイミングで、お使いの端末にお知らせが届きます。
よければ通知設定ページから通知の許可をお願いします。