TypeError: object.forEach nav JavaScript funkcija

Typeerror Object Foreach Nav Javascript Funkcija



Programmā JavaScript “ katram() ” metode izpilda doto funkciju vienu reizi katram masīva elementam. Metode forEach() tiek izmantota katram masīva, kopas vai kartes elementam. Ja mēģināsit izmantot šo metodi jebkuram citam veidam, tiks parādīta kļūda ' object.forEach nav JavaScript funkcija ”. Tāpēc izmantojiet to masīvos, kartēs vai kopās vai konvertējiet vērtības uz šiem veidiem un pēc tam izmantojiet šo metodi.

Šajā rakstā tiks definēta minētā kļūda un tās iespējamie risinājumi.

Kā notiek “TypeError: object.forEach nav funkcija JavaScript”?

Ja tiek izmantota vērtība, kas nav masīvs, karte vai kopa, “ katram() 'metode, piemēram, ' Objekts ” un tā tālāk, “ TypeError: object.forEach nav JavaScript funkcija ” notiek. Pārbaudīsim norādīto cēloni praktiski.







Piemērs

Dotajā piemērā, pirmkārt, mēs izveidosim objektu ar tā īpašībām atslēgu-vērtību pārī:



konst objektu = {

nosaukums : 'Stīvens' ,

rollno : vienpadsmit ,

priekšmets : 'Komercija'

} ;

Pēc tam izdrukājiet tā rekvizītus/ierakstus konsolē, izmantojot metodi forEach():



objektu. katram ( O => {

konsole. žurnāls ( O ) ;

} ) ;

Kā redzat izvadē, ir radusies kļūda, jo forEach metode nav piemērojama objektiem:





Kā labot norādīto kļūdu?

Lai atrisinātu iepriekš apspriesto kļūdu, izmantojiet Object metodes, piemēram, ' Object.keys() ', lai iegūtu atslēgas masīvā, ' Object.values() ', lai iegūtu objekta vērtības, vai ' Object.entries() ”, lai izgūtu visus objekta ierakstus. Turklāt ' Masīvs.no() ” metode pārvērš norādīto objektu objektu masīvā.



Mēģināsim izmantot piemēru, lai atrisinātu šo problēmu.

1. piemērs. Izlabojiet minēto kļūdu, izmantojot Object.entries() metodi

Šajā piemērā mēs iegūsim objekta ierakstus, izmantojot ' Object.entries() ' metode ar ' katram() ” metode, kas atgriež objekta ierakstu masīvu atslēgu un vērtību pāros:

Objekts . ieraksti ( objektu ) . katram ( iekšā => {

konsole. žurnāls ( iekšā ) ;

} ) ;

Tas neradīs kļūdu, jo metode Object.entries() konvertē vērtības masīvā un metode forEach() tiek izmantota, lai izpildītu doto funkciju katram elementam.

Izvade norāda, ka metode forEach() ir veiksmīgi palaists objektā, izmantojot Object.entries() metodi:

Piezīme: ForEach metode tiek izmantota arī objekta atslēgu un vērtību iegūšanai, izmantojot Object.keys() un Object.values() metodi.

Tagad paskatīsimies, vai nevēlaties iegūt objekta atslēgas, vērtības vai ierakstus, ko jūs darītu? Skatiet doto piemēru!

2. piemērs. Izlabojiet minēto kļūdu, izmantojot metodi Array.from().

Lai labotu šo kļūdu, pārveidojiet objektu par objektu masīvu un pēc tam lietojiet tam metodi forEach(), izmantojot ' Masīvs.no() ” metode. Tas izdrukās visas objekta īpašības, neradot kļūdu.

Vispirms pārveidosim objektu objektu masīvā:

konst objektu = [ {

nosaukums : 'Stīvens' ,

rollno : vienpadsmit ,

priekšmets : 'Komercija'

} ]

Izsauciet forEach() metodi:

Masīvs . no ( objektu ) . katram ( plkst => {

konsole. žurnāls ( plkst ) ;

} ) ;

Izvade

Mēs esam apkopojuši visus labākos iespējamos risinājumus norādītās kļūdas labošanai.

Secinājums

Minētā kļūda rodas, mēģinot izmantot “ katram() ” metodi vērtībai, kas nav masīvs, kopa vai karte. Lai labotu šo kļūdu, izmantojiet ' Masīvs.no() ” metodi, lai pārvērstu objektu par masīvu un pēc tam izmantotu metodi forEach() tam. Šajā rakstā tika aprakstīta minētās kļūdas rašanās un risinājums.