TypeError: object.forEach δεν είναι συνάρτηση στο JavaScript

Typeerror Object Foreach Den Einai Synartese Sto Javascript



Στο JavaScript, το ' για κάθε() Η μέθοδος ” εκτελεί μια δεδομένη συνάρτηση μία φορά για κάθε στοιχείο πίνακα. Η μέθοδος forEach() χρησιμοποιείται σε κάθε στοιχείο Array, Set ή Map. Εάν προσπαθήσετε να χρησιμοποιήσετε αυτήν τη μέθοδο σε οποιονδήποτε άλλο τύπο, θα εμφανιστεί ένα σφάλμα ' Το object.forEach δεν είναι συνάρτηση σε JavaScript '. Επομένως, χρησιμοποιήστε το σε πίνακες, χάρτες ή σύνολα ή μετατρέψτε τις τιμές σε αυτούς τους τύπους και, στη συνέχεια, εφαρμόστε αυτήν τη μέθοδο σε αυτούς.

Αυτό το άρθρο θα ορίσει το αναφερόμενο σφάλμα και τις πιθανές λύσεις του.

Πώς εμφανίζεται το 'TypeError: object.forEach δεν είναι συνάρτηση σε JavaScript';

Όταν χρησιμοποιείται μια τιμή που δεν είναι πίνακας, χάρτης ή σύνολο, το ' για κάθε() 'μέθοδος όπως ' Αντικείμενο 'και ούτω καθεξής, το ' TypeError: object.forEach δεν είναι συνάρτηση σε JavaScript ' λαμβάνει χώρα. Ας δοκιμάσουμε πρακτικά την αναφερόμενη αιτία.







Παράδειγμα

Στο συγκεκριμένο παράδειγμα, πρώτα, θα δημιουργήσουμε ένα αντικείμενο με τις ιδιότητές του σε ζεύγος κλειδιού-τιμής:



συνθ αντικείμενο = {

όνομα : 'Στέφανος' ,

rollno : έντεκα ,

θέμα : 'Εμπόριο'

} ;

Στη συνέχεια, εκτυπώστε τις ιδιότητες/εγγραφές του στην κονσόλα χρησιμοποιώντας τη μέθοδο forEach():



αντικείμενο. για κάθε ( Ο => {

κονσόλα. κούτσουρο ( Ο ) ;

} ) ;

Όπως μπορείτε να δείτε στην έξοδο, παρουσιάζεται ένα σφάλμα επειδή η μέθοδος forEach δεν είναι εφαρμόσιμη για αντικείμενα:





Πώς να διορθώσετε το καθορισμένο σφάλμα;

Για να επιλύσετε το σφάλμα που συζητήθηκε παραπάνω, χρησιμοποιήστε τις μεθόδους του Object όπως ' Object.keys() 'για να λάβετε κλειδιά σε έναν πίνακα, ' Object.values() ' για τη λήψη τιμών του αντικειμένου ή ' Object.entries() ” για την ανάκτηση όλων των καταχωρήσεων ενός αντικειμένου. Επιπλέον, το « Array.from() Η μέθοδος μετατρέπει το καθορισμένο αντικείμενο σε μια σειρά αντικειμένων.



Ας δοκιμάσουμε ένα παράδειγμα για να λύσουμε αυτό το πρόβλημα.

Παράδειγμα 1: Διορθώστε το αναφερόμενο σφάλμα χρησιμοποιώντας μια μέθοδο Object.entries().

Σε αυτό το παράδειγμα, θα λάβουμε τις εγγραφές ενός αντικειμένου χρησιμοποιώντας το ' Object.entries() μέθοδος με το « για κάθε() ' μέθοδος που επιστρέφει έναν πίνακα από καταχωρήσεις αντικειμένων σε ζεύγη κλειδιών-τιμών:

Αντικείμενο . καταχωρήσεις ( αντικείμενο ) . για κάθε ( σε => {

κονσόλα. κούτσουρο ( σε ) ;

} ) ;

Δεν θα δώσει σφάλμα, επειδή η μέθοδος Object.entries() μετατρέπει τις τιμές σε έναν πίνακα και η μέθοδος forEach() χρησιμοποιείται για την εκτέλεση της δεδομένης συνάρτησης σε κάθε στοιχείο.

Η έξοδος υποδεικνύει ότι η μέθοδος forEach() εκτελείται με επιτυχία στο αντικείμενο χρησιμοποιώντας τη μέθοδο Object.entries():

Σημείωση: Η μέθοδος forEach εφαρμόζεται επίσης για τη λήψη κλειδιών και τιμών ενός αντικειμένου χρησιμοποιώντας τις μεθόδους Object.keys() και Object.values().

Τώρα, ας δούμε αν δεν θέλετε να λάβετε τα κλειδιά, τις τιμές ή τις καταχωρήσεις ενός αντικειμένου, τι θα κάνατε; Δείτε το παράδειγμα που δίνεται!

Παράδειγμα 2: Διορθώστε το αναφερόμενο σφάλμα χρησιμοποιώντας τη μέθοδο Array.from().

Για να διορθώσετε αυτό το σφάλμα, μετατρέψτε το αντικείμενο σε έναν πίνακα αντικειμένων και στη συνέχεια εφαρμόστε τη μέθοδο forEach() σε αυτό χρησιμοποιώντας το ' Array.from() 'μέθοδος. Θα εκτυπώσει όλες τις ιδιότητες ενός αντικειμένου χωρίς να δώσει σφάλμα.

Ας μετατρέψουμε πρώτα το αντικείμενο σε μια σειρά αντικειμένων:

συνθ αντικείμενο = [ {

όνομα : 'Στέφανος' ,

rollno : έντεκα ,

θέμα : 'Εμπόριο'

} ]

Καλέστε τη μέθοδο forEach():

Πίνακας . από ( αντικείμενο ) . για κάθε ( στο => {

κονσόλα. κούτσουρο ( στο ) ;

} ) ;

Παραγωγή

Έχουμε συγκεντρώσει όλες τις καλύτερες δυνατές λύσεις για τη διόρθωση του καθορισμένου σφάλματος.

συμπέρασμα

Το αναφερόμενο σφάλμα παρουσιάζεται όταν προσπαθείτε να χρησιμοποιήσετε το ' για κάθε() ” μέθοδος σε μια τιμή που δεν είναι πίνακας, σύνολο ή χάρτης. Για να διορθώσετε αυτό το σφάλμα, χρησιμοποιήστε το ' Array.from() ” μέθοδο για να μετατρέψετε το αντικείμενο σε πίνακα και στη συνέχεια χρησιμοποιήστε τη μέθοδο forEach() σε αυτό. Αυτό το άρθρο περιέγραψε την εμφάνιση και τη λύση του αναφερόμενου σφάλματος.