TypeError: object.forEach nie je funkcia v JavaScripte

Typeerror Object Foreach Nie Je Funkcia V Javascripte



V JavaScripte je „ pre každý() ” metóda vykoná danú funkciu raz pre každý prvok poľa. Metóda forEach() sa používa na každom prvku Array, Set alebo Map. Ak sa pokúsite použiť túto metódu na akomkoľvek inom type, zobrazí sa chyba „ object.forEach nie je funkcia v JavaScripte “. Takže ho použite na polia, mapy alebo množiny alebo skonvertujte hodnoty na tieto typy a potom na ne aplikujte túto metódu.

Tento článok bude definovať spomínanú chybu a jej možné riešenia.

Ako sa vyskytuje „TypeError: object.forEach nie je funkcia v JavaScripte“?

Keď sa použije hodnota, ktorá nie je Array, Map alebo Set, „ pre každý() “ metóda ako “ Objekt “ a tak ďalej, „ TypeError: object.forEach nie je funkcia v JavaScripte ' vyskytuje. Vyskúšajme si uvedenú príčinu prakticky.







Príklad

V uvedenom príklade najprv vytvoríme objekt s jeho vlastnosťami v páre kľúč – hodnota:



konšt objekt = {

názov : 'Stephen' ,

rollno : jedenásť ,

predmet : 'obchod'

} ;

Potom vytlačte jeho vlastnosti/položky na konzole pomocou metódy forEach():



objekt. pre každý ( O => {

konzoly. log ( O ) ;

} ) ;

Ako môžete vidieť vo výstupe, došlo k chybe, pretože metóda forEach nie je použiteľná pre objekty:





Ako opraviť špecifikovanú chybu?

Ak chcete vyriešiť vyššie diskutovanú chybu, použite metódy objektu, ako napríklad „ Object.keys() “ na získanie kľúčov v poli, “ Object.values() “ na získanie hodnôt objektu alebo “ Object.entries() ” na získanie všetkých položiek objektu. Navyše, „ Array.from() ” metóda konvertuje zadaný objekt na pole objektov.



Skúsme tento problém vyriešiť príkladom.

Príklad 1: Opravte uvedenú chybu pomocou metódy Object.entries().

V tomto príklade získame položky objektu pomocou „ Object.entries() “ metóda s “ pre každý() ” metóda, ktorá vracia pole položiek objektu v pároch kľúč – hodnota:

Objekt . záznamy ( objekt ) . pre každý ( v => {

konzoly. log ( v ) ;

} ) ;

Neposkytne chybu, pretože metóda Object.entries() konvertuje hodnoty v poli a metóda forEach() sa používa na vykonanie danej funkcie na každom prvku.

Výstup indikuje, že metóda forEach() je úspešne spustená na objekte pomocou metódy Object.entries():

Poznámka: Metóda forEach sa tiež používa na získanie kľúčov a hodnôt objektu pomocou metód Object.keys() a Object.values().

Teraz sa pozrime, či nechcete získať kľúče, hodnoty alebo položky objektu, tak čo by ste urobili? Pozrite si uvedený príklad!

Príklad 2: Opravte uvedenú chybu pomocou metódy Array.from().

Ak chcete túto chybu opraviť, konvertujte objekt na pole objektov a potom naň použite metódu forEach() pomocou „ Array.from() “. Vytlačí všetky vlastnosti objektu bez chyby.

Najprv skonvertujme objekt na pole objektov:

konšt objekt = [ {

názov : 'Stephen' ,

rollno : jedenásť ,

predmet : 'obchod'

} ]

Zavolajte metódu forEach():

Pole . od ( objekt ) . pre každý ( pri => {

konzoly. log ( pri ) ;

} ) ;

Výkon

Zostavili sme všetky najlepšie možné riešenia na opravu uvedenej chyby.

Záver

Uvedená chyba sa vyskytne, keď sa pokúsite použiť „ pre každý() ” na hodnotu, ktorá nie je Array, Set alebo Map. Ak chcete túto chybu opraviť, použite „ Array.from() ” na konverziu objektu na pole a potom naň použite metódu forEach(). Tento článok popisuje výskyt a riešenie uvedenej chyby.