TypeError: object.forEach ei ole JavaScriptin toiminto

Typeerror Object Foreach Ei Ole Javascriptin Toiminto



JavaScriptissä ' jokaiselle() ” -menetelmä suorittaa tietyn funktion kerran jokaiselle taulukon elementille. ForEach()-menetelmää käytetään jokaisessa Array-, Set- tai Map-elementissä. Jos yrität käyttää tätä menetelmää missä tahansa muussa tyypissä, se antaa virheilmoituksen ' object.forEach ei ole JavaScriptin funktio ”. Joten käytä sitä taulukoissa, kartoissa tai joukoissa tai muunna arvot tämäntyyppisiksi ja käytä sitten tätä menetelmää niihin.

Tässä artikkelissa määritellään mainittu virhe ja sen mahdolliset ratkaisut.

Miten 'TypeError: object.forEach ei ole JavaScriptin funktio' tapahtuu?

Kun käytetään arvoa, joka ei ole Array, Map tai Set, ' jokaiselle() 'menetelmä, kuten ' Esine ' ja niin edelleen, ' TypeError: object.forEach ei ole JavaScriptin funktio ' tapahtuu. Testataanpa ilmoitettu syy käytännössä.







Esimerkki

Annetussa esimerkissä luomme ensin objektin ominaisuuksineen avain-arvo-parissa:



konst esine = {

nimi : 'Stephen' ,

rollno : yksitoista ,

aihe : 'Kauppa'

} ;

Tulosta sitten sen ominaisuudet/merkinnät konsoliin käyttämällä forEach()-menetelmää:



esine. jokaiselle ( O => {

konsoli. Hirsi ( O ) ;

} ) ;

Kuten tulosteessa näkyy, tapahtuu virhe, koska forEach-metodi ei sovellu objekteille:





Kuinka korjata määritetty virhe?

Voit ratkaista yllä käsitellyn virheen käyttämällä Objectin menetelmiä, kuten ' Object.keys() ' saada avaimet taulukkoon, ' Object.values() ' objektin arvojen saamiseksi tai ' Object.entries() ' objektin kaikkien merkintöjen hakemiseen. Lisäksi ' Array.from() ” -menetelmä muuntaa määritetyn objektin objektijoukoksi.



Kokeillaan esimerkkiä tämän ongelman ratkaisemiseksi.

Esimerkki 1: Korjaa mainittu virhe Object.entries()-menetelmällä

Tässä esimerkissä saamme objektin merkinnät käyttämällä ' Object.entries() ' menetelmällä ' jokaiselle() '-menetelmä, joka palauttaa joukon objektin merkintöjä avain-arvo-pareina:

Esine . merkinnät ( esine ) . jokaiselle ( sisään => {

konsoli. Hirsi ( sisään ) ;

} ) ;

Se ei anna virhettä, koska Object.entries()-metodi muuntaa taulukon arvot ja forEach()-metodia käytetään tietyn funktion suorittamiseen jokaisessa elementissä.

Tulos osoittaa, että forEach()-metodi on suoritettu onnistuneesti Object.entries()-metodilla:

Huomautus: forEach-metodia käytetään myös objektin avainten ja arvojen hankkimiseen Object.keys()- ja Object.values()-metodeista.

Katsotaan nyt, jos et halua saada objektin avaimia, arvoja tai merkintöjä, joten mitä tekisit? Katso annettu esimerkki!

Esimerkki 2: Korjaa mainittu virhe käyttämällä Array.from() -menetelmää

Voit korjata tämän virheen muuntamalla objektin objektijoukoksi ja käyttämällä sitten forEach()-menetelmää siihen käyttämällä ' Array.from() ”menetelmä. Se tulostaa kaikki objektin ominaisuudet antamatta virhettä.

Muunnetaan ensin objekti objektijoukoksi:

konst esine = [ {

nimi : 'Stephen' ,

rollno : yksitoista ,

aihe : 'Kauppa'

} ]

Kutsu forEach()-metodi:

Array . alkaen ( esine ) . jokaiselle ( klo => {

konsoli. Hirsi ( klo ) ;

} ) ;

Lähtö

Olemme koonneet kaikki parhaat mahdolliset ratkaisut määritellyn virheen korjaamiseksi.

Johtopäätös

Mainittu virhe ilmenee, kun yrität käyttää ' jokaiselle() ” -menetelmää arvolle, joka ei ole Array, Set tai Map. Korjaa tämä virhe käyttämällä ' Array.from() ” -menetelmää muuntaaksesi kohteen taulukoksi ja käyttää sitten siinä forEach()-metodia. Tässä artikkelissa kuvattiin mainitun virheen esiintyminen ja ratkaisu.