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.