この記事では、前述のエラーとその可能な解決策を定義します。
「TypeError: object.forEach は JavaScript の関数ではありません」はどのように発生しますか?
Array、Map、または Set ではない値が使用される場合、「 forEach() 」などの方法 物体 」など、「 TypeError: object.forEach は JavaScript の関数ではありません 」が発生します。述べられた原因を実際にテストしてみましょう。
例
与えられた例では、まず、キーと値のペアのプロパティを持つオブジェクトを作成します。
定数 物体 = {
名前 : 「スティーブン」 、
ロールノ : 十一 、
主題 : '商業'
} ;
次に、forEach() メソッドを使用してコンソールにそのプロパティ/エントリを出力します。
物体。 forEach ( 〇 => {
コンソール。 ログ ( 〇 ) ;
} ) ;
出力でわかるように、 forEach メソッドはオブジェクトに適用できないため、エラーが発生します。
指定されたエラーを修正する方法は?
上記のエラーを解決するには、「 Object.keys() ” 配列内のキーを取得するには、” Object.values() 」 オブジェクトの値を取得する場合、または「 Object.entries() 」 オブジェクトのすべてのエントリを取得します。さらに、「 配列.from() 」メソッドは、指定されたオブジェクトをオブジェクトの配列に変換します。
この問題を解決するための例を試してみましょう。
例 1: Object.entries() メソッドを使用して前述のエラーを修正する
この例では、「 Object.entries() ” を使用したメソッド forEach() キーと値のペアでオブジェクトのエントリの配列を返す」メソッド:
物体 . エントリ ( 物体 ) . forEach ( の => {コンソール。 ログ ( の ) ;
} ) ;
Object.entries() メソッドが配列内の値を変換し、 forEach() メソッドを使用してすべての要素に対して指定された関数を実行するため、エラーは発生しません。
出力は、Object.entries() メソッドを使用してオブジェクトに対して forEach() メソッドが正常に実行されたことを示しています。
ノート: forEach メソッドは、Object.keys() および Object.values() メソッドを使用してオブジェクトのキーと値を取得するためにも適用されます。
では、オブジェクトのキー、値、またはエントリを取得したくない場合はどうすればよいでしょうか?与えられた例を見てください!
例 2: Array.from() メソッドを使用して前述のエラーを修正する
このエラーを修正するには、オブジェクトをオブジェクトの配列に変換してから、「 配列.from() ' 方法。エラーを発生させることなく、オブジェクトのすべてのプロパティを出力します。
まずオブジェクトをオブジェクトの配列に変換しましょう:
定数 物体 = [ {名前 : 「スティーブン」 、
ロールノ : 十一 、
主題 : '商業'
} ]
forEach() メソッドを呼び出します。
配列 . から ( 物体 ) . forEach ( で => {コンソール。 ログ ( で ) ;
} ) ;
出力
指定されたエラーを修正するための最善の解決策をすべてまとめました。
結論
「」を使用しようとすると、前述のエラーが発生します。 forEach() 配列、セット、またはマップではない値に対する ' メソッド。このエラーを修正するには、「 配列.from() 」メソッドを使用してオブジェクトを配列に変換し、その上で forEach() メソッドを使用します。この記事では、上記のエラーの発生と解決方法について説明しました。