TypeError: object.forEach ni funkcija v JavaScriptu

Typeerror Object Foreach Ni Funkcija V Javascriptu



V JavaScriptu je » za vsakogar() ” izvede dano funkcijo enkrat za vsak element polja. Metoda forEach() se uporablja za vsak element Array, Set ali Map. Če poskusite to metodo uporabiti pri kateri koli drugi vrsti, bo vrgla napako ' object.forEach ni funkcija v JavaScriptu ”. Uporabite ga torej na nizih, zemljevidih ​​ali nizih ali pretvorite vrednosti v te vrste in nato uporabite to metodo zanje.

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.