【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
- この記事を共有する