Ovaj članak će definirati navedenu grešku i njezina moguća rješenja.
Kako se pojavljuje 'TypeError: object.forEach nije funkcija u JavaScriptu'?
Kada se koristi vrijednost koja nije polje, karta ili skup, ' za svakoga() ' metoda kao što je ' Objekt ' i tako dalje, ' TypeError: object.forEach nije funkcija u JavaScriptu ” javlja se. Isprobajmo navedeni uzrok u praksi.
Primjer
U navedenom primjeru, prvo ćemo stvoriti objekt sa svojim svojstvima u paru ključ-vrijednost:
konst objekt = {
Ime : 'Stjepan' ,
rollno : jedanaest ,
subjekt : 'Trgovina'
} ;
Zatim ispišite njegova svojstva/unose na konzoli pomoću metode forEach():
objekt. za svakoga ( O => {
konzola. log ( O ) ;
} ) ;
Kao što možete vidjeti u izlazu, došlo je do pogreške jer metoda forEach nije primjenjiva za objekte:
Kako popraviti navedenu pogrešku?
Da biste riješili gore spomenutu pogrešku, koristite Objectove metode kao što je ' Object.keys() ' da biste dobili ključeve u nizu, ' Object.values() ” za dobivanje vrijednosti objekta, ili “ Object.entries() ” za dohvaćanje svih unosa objekta. Štoviše, ' Array.from() ” metoda pretvara navedeni objekt u niz objekata.
Pokušajmo na primjeru riješiti ovaj problem.
Primjer 1: Ispravite spomenutu pogrešku pomoću metode Object.entries().
U ovom primjeru ćemo dobiti unose objekta koristeći ' Object.entries() ' metoda s ' za svakoga() ” metoda koja vraća niz unosa objekta u parovima ključ-vrijednost:
Objekt . unose ( objekt ) . za svakoga ( u => {konzola. log ( u ) ;
} ) ;
Neće dati pogrešku jer metoda Object.entries() pretvara vrijednosti u nizu, a metoda forEach() koristi se za izvršavanje zadane funkcije na svakom elementu.
Izlaz pokazuje da je metoda forEach() uspješno pokrenuta na objektu pomoću metode Object.entries():
Bilješka: Metoda forEach također se primjenjuje za dobivanje ključeva i vrijednosti objekta pomoću metoda Object.keys() i Object.values().
Sada, da vidimo ako ne želite dobiti ključeve, vrijednosti ili unose objekta, pa što biste učinili? Pogledajte navedeni primjer!
Primjer 2: Ispravite spomenutu pogrešku pomoću metode Array.from().
Da biste ispravili ovu pogrešku, pretvorite objekt u niz objekata, a zatim na njega primijenite metodu forEach() koristeći ' Array.from() ” metoda. Ispisat će sva svojstva objekta bez davanja pogreške.
Prvo pretvorimo objekt u niz objekata:
konst objekt = [ {Ime : 'Stjepan' ,
rollno : jedanaest ,
subjekt : 'Trgovina'
} ]
Pozovite metodu forEach():
Niz . iz ( objekt ) . za svakoga ( na => {konzola. log ( na ) ;
} ) ;
Izlaz
Sakupili smo sva najbolja moguća rješenja za ispravljanje navedene pogreške.
Zaključak
Spomenuta pogreška se javlja kada pokušate koristiti ' za svakoga() ” na vrijednosti koja nije polje, skup ili karta. Da biste ispravili ovu grešku, koristite ' Array.from() ” za pretvaranje objekta u niz i zatim korištenje metode forEach() na njemu. U ovom članku je opisana pojava i rješenje navedene greške.