TypeError: object.forEach Bukan Fungsi dalam JavaScript

Typeerror Object Foreach Bukan Fungsi Dalam Javascript



Dalam JavaScript, “ untuk setiap() ” metode mengeksekusi fungsi yang diberikan sekali untuk setiap elemen array. Metode forEach() digunakan pada setiap elemen Array, Set, atau Map. Jika Anda mencoba menggunakan metode ini pada jenis lain, itu akan menimbulkan kesalahan ' object.forEach bukan fungsi dalam JavaScript ”. Jadi, gunakan pada array, peta, atau set atau ubah nilai menjadi tipe ini dan kemudian terapkan metode ini pada mereka.

Artikel ini akan menjelaskan kesalahan yang disebutkan dan kemungkinan solusinya.

Bagaimana 'TypeError: object.forEach bukan fungsi dalam JavaScript' Terjadi?

Ketika nilai yang bukan Array, Map, atau Set digunakan, “ untuk setiap() ” metode seperti “ Obyek ” dan seterusnya, “ TypeError: object.forEach bukan fungsi dalam JavaScript ' terjadi. Mari kita uji penyebab yang disebutkan secara praktis.







Contoh

Dalam contoh yang diberikan, pertama, kita akan membuat objek dengan propertinya dalam key-value pair:



const obyek = {

nama : 'Stefanus' ,

rollno : sebelas ,

subjek : 'Perdagangan'

} ;

Kemudian, cetak properti/entrinya di konsol menggunakan metode forEach() :



obyek. untuk setiap ( HAI => {

menghibur. catatan ( HAI ) ;

} ) ;

Seperti yang Anda lihat di output, error terjadi karena metode forEach tidak berlaku untuk objek:





Bagaimana Cara Memperbaiki Kesalahan yang Ditentukan?

Untuk mengatasi kesalahan yang dibahas di atas, gunakan metode Object seperti ' Objek.kunci() ” untuk mendapatkan kunci dalam array, “ Objek.nilai() ” untuk mendapatkan nilai objek, atau “ Objek.entri() ” untuk mengambil semua entri objek. Selain itu, “ Larik.dari() ” metode mengubah objek yang ditentukan menjadi array objek.



Mari kita coba contoh untuk menyelesaikan masalah ini.

Contoh 1: Perbaiki Kesalahan yang Disebutkan Menggunakan Metode Object.entries()

Dalam contoh ini, kita akan mendapatkan entri objek menggunakan “ Objek.entri() ” metode dengan “ untuk setiap() ” yang mengembalikan larik entri objek dalam pasangan nilai kunci:

Obyek . entri ( obyek ) . untuk setiap ( di => {

menghibur. catatan ( di ) ;

} ) ;

Itu tidak akan memberikan kesalahan, karena metode Object.entries() mengubah nilai dalam array dan metode forEach() digunakan untuk menjalankan fungsi yang diberikan pada setiap elemen.

Output menunjukkan bahwa metode forEach() berhasil dijalankan pada Object menggunakan metode Object.entries() :

Catatan: metode forEach juga diterapkan untuk mendapatkan kunci dan nilai objek menggunakan metode Object.keys() dan Object.values() .

Sekarang, mari kita lihat jika Anda tidak ingin mendapatkan kunci, nilai, atau entri objek, jadi apa yang akan Anda lakukan? Lihat contoh yang diberikan!

Contoh 2: Perbaiki Kesalahan yang Disebutkan Menggunakan Metode Array.from()

Untuk memperbaiki kesalahan ini, ubah objek menjadi larik objek, lalu terapkan metode forEach() padanya menggunakan ' Larik.dari() ' metode. Ini akan mencetak semua properti objek tanpa memberikan kesalahan.

Mari pertama-tama ubah objek menjadi array objek:

const obyek = [ {

nama : 'Stefanus' ,

rollno : sebelas ,

subjek : 'Perdagangan'

} ]

Panggil metode forEach() :

Himpunan . dari ( obyek ) . untuk setiap ( pada => {

menghibur. catatan ( pada ) ;

} ) ;

Keluaran

Kami telah mengumpulkan semua solusi terbaik untuk memperbaiki kesalahan yang ditentukan.

Kesimpulan

Kesalahan yang disebutkan terjadi ketika Anda mencoba menggunakan ' untuk setiap() ” pada nilai yang bukan Array, Set, atau Map. Untuk memperbaiki kesalahan ini, gunakan “ Larik.dari() ” untuk mengonversi objek menjadi array dan kemudian menggunakan metode forEach() di atasnya. Artikel ini menjelaskan terjadinya dan solusi dari kesalahan tersebut.