TypeError: object.forEach Bukan Fungsi dalam JavaScript

Typeerror Object Foreach Bukan Fungsi Dalam Javascript



Dalam JavaScript, ' untuk setiap() ” kaedah melaksanakan fungsi yang diberikan sekali untuk setiap elemen tatasusunan. Kaedah forEach() digunakan pada setiap elemen Array, Set atau Map. Jika anda cuba menggunakan kaedah ini pada mana-mana jenis lain, ia akan menimbulkan ralat ' object.forEach bukan fungsi dalam JavaScript ”. Jadi, gunakannya pada tatasusunan, peta atau set atau tukar nilai kepada jenis ini dan kemudian gunakan kaedah ini padanya.

Artikel ini akan menentukan ralat yang disebutkan dan kemungkinan penyelesaiannya.

Bagaimanakah 'TypeError: object.forEach bukan fungsi dalam JavaScript' Berlaku?

Apabila nilai yang bukan Array, Peta atau Set digunakan, ' untuk setiap() kaedah seperti ' Objek ” dan seterusnya, “ TypeError: object.forEach bukan fungsi dalam JavaScript ' berlaku. Mari kita uji sebab yang dinyatakan secara praktikal.







Contoh

Dalam contoh yang diberikan, pertama, kita akan mencipta objek dengan sifatnya dalam pasangan nilai kunci:



const objek = {

nama : 'Stephen' ,

rollno : sebelas ,

subjek : 'Perdagangan'

} ;

Kemudian, cetak sifat/entrinya pada konsol menggunakan kaedah forEach():



objek. untuk setiap ( O => {

konsol. log ( O ) ;

} ) ;

Seperti yang anda lihat dalam output, ralat berlaku kerana kaedah forEach tidak boleh digunakan untuk objek:





Bagaimana untuk Membetulkan Ralat yang Ditentukan?

Untuk menyelesaikan ralat yang dibincangkan di atas, gunakan kaedah Objek seperti ' Object.keys() 'untuk mendapatkan kunci dalam tatasusunan,' Object.values() ' untuk mendapatkan nilai objek, atau ' Object.entry() ” untuk mendapatkan semula semua entri sesuatu objek. Selain itu, ' Array.from() ” kaedah menukar objek yang ditentukan kepada tatasusunan objek.



Mari cuba contoh untuk menyelesaikan isu ini.

Contoh 1: Betulkan Ralat Yang Disebut Menggunakan Kaedah Object.entry().

Dalam contoh ini, kita akan mendapat entri objek menggunakan ' Object.entry() ' kaedah dengan ' untuk setiap() ' kaedah yang mengembalikan tatasusunan entri objek dalam pasangan nilai kunci:

Objek . entri ( objek ) . untuk setiap ( dalam => {

konsol. log ( dalam ) ;

} ) ;

Ia tidak akan memberikan ralat, kerana kaedah Object.entry() menukar nilai dalam tatasusunan dan kaedah forEach() digunakan untuk melaksanakan fungsi yang diberikan pada setiap elemen.

Output menunjukkan bahawa kaedah forEach() berjaya dijalankan pada Objek menggunakan kaedah Object.entry():

Nota: forEach kaedah juga digunakan untuk mendapatkan kunci dan nilai objek menggunakan kaedah Object.keys() dan Object.values().

Sekarang, mari lihat jika anda tidak mahu mendapatkan kunci, nilai atau entri objek, jadi apakah yang akan anda lakukan? Lihat contoh yang diberikan!

Contoh 2: Betulkan Ralat Yang Disebut Menggunakan Kaedah Array.from().

Untuk membetulkan ralat ini, tukar objek kepada tatasusunan objek dan kemudian gunakan kaedah forEach() padanya menggunakan ' Array.from() ” kaedah. Ia akan mencetak semua sifat objek tanpa memberikan ralat.

Mari mula-mula menukar objek ke dalam tatasusunan objek:

const objek = [ {

nama : 'Stephen' ,

rollno : sebelas ,

subjek : 'Perdagangan'

} ]

Panggil kaedah forEach() :

Susunan . daripada ( objek ) . untuk setiap ( di => {

konsol. log ( di ) ;

} ) ;

Pengeluaran

Kami telah mengumpulkan semua penyelesaian terbaik yang mungkin untuk membetulkan ralat yang ditentukan.

Kesimpulan

Ralat yang disebutkan berlaku apabila anda cuba menggunakan ' untuk setiap() ” kaedah pada nilai yang bukan Tatasusunan, Set atau Peta. Untuk membetulkan ralat ini, gunakan ' Array.from() ” untuk menukar objek kepada tatasusunan dan kemudian gunakan kaedah forEach() padanya. Artikel ini menerangkan kejadian dan penyelesaian ralat yang disebutkan.