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.