javascript エラー「TypeError: undefined is not a function (near ‘…x of xxx…’)」の解決方法

javascript エラー「TypeError: undefined is not a function (near ‘…x of xxx…’)」の解決方法

javascriptで、エラー「TypeError: undefined is not a function (near ‘…x of xxx…’)」が発生した場合の原因と解決方法を記述してます。反復可能でないオブジェクトに対して「for-of」を使用した際に発生します。

環境

  • OS macOS macOS Monterey
  • ブラウザ safari 15.5

エラー内容

以下のオブジェクトに「for-of」を実行時に発生。

let obj = {a: 1, b: 2, c: 3 };

for (let i of obj) {
  console.log(obj[i]);
}

エラーメッセージ

TypeError: undefined is not a function (near '...i of obj...')

画像

原因

「for-of」は、「反復可能」なオブジェクトにしか利用できないため

解決方法

「Object.values」を使用して配列化して後に実行するか、

let obj = {a: 1, b: 2, c: 3 };

for (const value of Object.values(obj)) {
  console.log(value);
}

「for-in」を使用する。

let obj = {a: 1, b: 2, c: 3 };

for (let i in obj) {
  console.log(obj[i]);
}

実行結果