TypeError: object.forEach ei ole JavaScriptis funktsioon

Typeerror Object Foreach Ei Ole Javascriptis Funktsioon



JavaScriptis on ' igaühele() ” meetod täidab antud funktsiooni iga massiivi elemendi jaoks üks kord. Meetodit forEach() kasutatakse iga massiivi, komplekti või kaardi elemendi puhul. Kui proovite seda meetodit kasutada mis tahes muul tüübil, kuvatakse tõrketeade ' object.forEach ei ole JavaScriptis funktsioon ”. Seega kasutage seda massiivides, kaartides või komplektides või teisendage väärtused seda tüüpideks ja seejärel rakendage neile seda meetodit.

See artikkel määratleb mainitud vea ja selle võimalikud lahendused.

Kuidas 'TypeError: object.forEach ei ole JavaScripti funktsioon'?

Kui kasutatakse väärtust, mis ei ole massiiv, kaart või komplekt, siis ' igaühele() meetodit, näiteks Objekt ” ja nii edasi, „ TypeError: object.forEach ei ole JavaScriptis funktsioon ” esineb. Testime välja toodud põhjust praktiliselt.







Näide

Antud näites loome esmalt objekti, mille atribuudid on võtme-väärtuse paaris:



konst objektiks = {

nimi : 'Stephen' ,

rollno : üksteist ,

teema : 'Kaubandus'

} ;

Seejärel printige selle atribuudid/kirjed konsoolil, kasutades meetodit forEach():



objektiks. igaühele ( O => {

konsool. logi ( O ) ;

} ) ;

Nagu näete väljundis, ilmnes tõrge, kuna meetod forEach ei ole objektide jaoks rakendatav:





Kuidas määratud viga parandada?

Eespool käsitletud vea lahendamiseks kasutage Objecti meetodeid nagu ' Object.keys() ', et saada võtmed massiivi, ' Object.values() ' objekti väärtuste hankimiseks või ' Object.entries() ” objekti kõigi kirjete toomiseks. Veelgi enam, ' Array.from() ” meetod teisendab määratud objekti objektide massiiviks.



Proovime selle probleemi lahendamiseks näidet.

Näide 1: Parandage mainitud tõrge, kasutades Object.entries() meetodit

Selles näites saame objekti kirjed kasutades ' Object.entries() ' meetod koos ' igaühele() ” meetod, mis tagastab objekti kirjete massiivi võtme-väärtuse paarides:

Objekt . sissekandeid ( objektiks ) . igaühele ( sisse => {

konsool. logi ( sisse ) ;

} ) ;

See ei anna viga, kuna Object.entries() meetod teisendab massiivi väärtused ja meetodit forEach() kasutatakse antud funktsiooni täitmiseks igal elemendil.

Väljund näitab, et meetod forEach() on objektil edukalt käivitatud, kasutades Object.entries() meetodit:

Märge: ForEach meetodit rakendatakse ka objekti võtmete ja väärtuste hankimiseks, kasutades meetodeid Object.keys() ja Object.values().

Nüüd vaatame, kas te ei soovi saada objekti võtmeid, väärtusi või kirjeid, nii et mida te teeksite? Vaata toodud näidet!

Näide 2: parandage mainitud tõrge meetodi Array.from() abil

Selle vea parandamiseks teisendage objekt objektide massiiviks ja seejärel rakendage sellele meetodit forEach(), kasutades ' Array.from() ” meetod. See prindib kõik objekti omadused ilma viga andmata.

Esmalt teisendame objekti objektide massiiviks:

konst objektiks = [ {

nimi : 'Stephen' ,

rollno : üksteist ,

teema : 'Kaubandus'

} ]

Kutsuge meetodit forEach()

Massiiv . alates ( objektiks ) . igaühele ( juures => {

konsool. logi ( juures ) ;

} ) ;

Väljund

Oleme koostanud kõik parimad võimalikud lahendused antud vea parandamiseks.

Järeldus

Mainitud tõrge ilmneb siis, kui proovite kasutada igaühele() ” meetodit väärtusel, mis ei ole massiiv, komplekt või kaart. Selle vea parandamiseks kasutage ' Array.from() ” meetodit, et teisendada objekt massiiviks ja seejärel kasutada sellel meetodit forEach(). Selles artiklis kirjeldati mainitud vea esinemist ja lahendust.