JavaScript | xxx.forEach is not a function エラーの原因と修正案

2023-02-09JavaScript エラー,JavaScript

JavaScript | xxx.forEach is not a function エラーの原因と修正案

JavaScriptで発生するコンソールエラー「 xxx.forEach is not a function」の原因と対処・修正案について紹介しています。

Uncaught TypeError: xxx.forEach is not a function ~
キャッチされていない型エラー: xxx に forEach 関数ありません

確認環境

サーバー:エックスサーバー
実行ブラウザ:Microsoft Edge バージョン 109.0.1518.70 

xxx.forEach is not a function エラーの発生原因

「xxx.forEach is not a function」というJavaScriptのエラーはオブジェクト型など配列型以外のデータに対してforEach()関数を実行しようとした際に発生するエラーです。

このエラーはキャッチされていない型エラー(Uncaught TypeError)に分類されています。

例えば、以下のようなオブジェクト型を定義したJSコードを実行する場合にエラーは発生します。

let data = {}

data.forEach(e => {
	// 処理
})

// Uncaught TypeError: data.forEach is not a function ~

xxx.forEach is not a function エラーの修正案

「xxx.forEach is not a function」エラーを修正するには、参照しているデータでforEach()関数が使えるものか確認して修正する必要があります。

また、for offor inなどで対応する方法もあります。

let data = {}
for (const item of Object.keys(data)) {
		// 処理
}
let data = {}
for (const key in data) {
	if (Object.hasOwnProperty.call(data, key)) {
		// 処理
	}
}