Ta članek bo opredelil omenjeno napako in njene možne rešitve.
Kako pride do »TypeError: object.forEach ni funkcija v JavaScriptu«?
Ko je uporabljena vrednost, ki ni polje, preslikava ali nabor, se za vsakogar() ' metoda, kot je ' Objekt « in tako naprej, » TypeError: object.forEach ni funkcija v JavaScriptu ”. Preizkusimo navedeni vzrok v praksi.
Primer
V danem primeru bomo najprej ustvarili objekt z njegovimi lastnostmi v paru ključ-vrednost:
konst predmet = {
ime : 'Stephen' ,
rollno : enajst ,
predmet : 'Commerce'
} ;
Nato natisnite njegove lastnosti/vnose na konzoli z uporabo metode forEach():
predmet. za vsakogar ( O => {
konzola. dnevnik ( O ) ;
} ) ;
Kot lahko vidite v izhodu, je prišlo do napake, ker metoda forEach ni uporabna za objekte:
Kako popraviti navedeno napako?
Za rešitev zgoraj obravnavane napake uporabite metode Object, kot je ' Object.keys() ' za pridobitev ključev v nizu, ' Object.values() ' za pridobivanje vrednosti predmeta ali ' Object.entries() ” za pridobivanje vseh vnosov predmeta. Poleg tega je ' Array.from() ” pretvori navedeni predmet v matriko predmetov.
Poskusimo s primerom rešiti to težavo.
Primer 1: Popravite omenjeno napako z metodo Object.entries().
V tem primeru bomo dobili vnose predmeta z uporabo ' Object.entries() ' metoda z ' za vsakogar() ”, ki vrne matriko vnosov predmeta v parih ključ-vrednost:
Objekt . vnosi ( predmet ) . za vsakogar ( v => {konzola. dnevnik ( v ) ;
} ) ;
Ne bo povzročilo napake, ker metoda Object.entries() pretvori vrednosti v matriki, metoda forEach() pa se uporablja za izvedbo dane funkcije na vsakem elementu.
Izhod kaže, da se metoda forEach() uspešno izvaja na objektu z uporabo metode Object.entries():
Opomba: Metoda forEach se uporablja tudi za pridobivanje ključev in vrednosti predmeta z metodo Object.keys() in Object.values().
Zdaj pa poglejmo, če ne želite pridobiti ključev, vrednosti ali vnosov predmeta, kaj bi torej storili? Oglejte si navedeni primer!
Primer 2: Popravite omenjeno napako z uporabo metode Array.from().
Če želite odpraviti to napako, pretvorite predmet v matriko predmetov in nato uporabite metodo forEach() na njem z uporabo ' Array.from() ” metoda. Natisnil bo vse lastnosti predmeta brez napake.
Najprej pretvorimo predmet v niz predmetov:
konst predmet = [ {ime : 'Stephen' ,
rollno : enajst ,
predmet : 'Commerce'
} ]
Pokličite metodo forEach():
Array . od ( predmet ) . za vsakogar ( ob => {konzola. dnevnik ( ob ) ;
} ) ;
Izhod
Zbrali smo vse najboljše možne rešitve za odpravo navedene napake.
Zaključek
Omenjena napaka se pojavi, ko poskusite uporabiti » za vsakogar() ” za vrednost, ki ni matrika, niz ali zemljevid. Če želite odpraviti to napako, uporabite » Array.from() ” za pretvorbo predmeta v matriko in nato zanj uporabite metodo forEach(). Ta članek opisuje nastanek in rešitev omenjene napake.