מאמר זה יגדיר את השגיאה שהוזכרה ואת פתרונותיה האפשריים.
כיצד 'TypeError: object.forEach אינה פונקציה ב-JavaScript' מתרחשת?
כאשר נעשה שימוש בערך שאינו מערך, מפה או קבוצה, ' לכל אחד() שיטה כמו ' לְהִתְנַגֵד ' וכן הלאה, ה' TypeError: object.forEach אינה פונקציה ב-JavaScript 'מתרחש. בואו נבדוק את הסיבה המוצהרת באופן מעשי.
דוגמא
בדוגמה הנתונה, ראשית, ניצור אובייקט עם המאפיינים שלו בזוג מפתח-ערך:
const לְהִתְנַגֵד = {
שֵׁם : 'סטיבן' ,
rollno : אחת עשרה ,
נושא : 'מִסְחָר'
} ;
לאחר מכן, הדפס את המאפיינים/ערכים שלו במסוף באמצעות שיטת forEach():
לְהִתְנַגֵד. לכל אחד ( O => {
לְנַחֵם. עֵץ ( O ) ;
} ) ;
כפי שניתן לראות בפלט, נתקלת בשגיאה מכיוון ששיטת 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() ' שיטה. זה ידפיס את כל המאפיינים של אובייקט מבלי לתת שגיאה.
תחילה נמיר את האובייקט למערך של אובייקטים:
const לְהִתְנַגֵד = [ {שֵׁם : 'סטיבן' ,
rollno : אחת עשרה ,
נושא : 'מִסְחָר'
} ]
קרא למתודה forEach():
מַעֲרָך . מ ( לְהִתְנַגֵד ) . לכל אחד ( בְּ- => {לְנַחֵם. עֵץ ( בְּ- ) ;
} ) ;
תְפוּקָה
ריכזנו את כל הפתרונות הטובים ביותר לתיקון השגיאה שצוינה.
סיכום
השגיאה המוזכרת מתרחשת כאשר אתה מנסה להשתמש ב-' לכל אחד() ' שיטה על ערך שאינו מערך, קבוצה או מפה. כדי לתקן שגיאה זו, השתמש ב' Array.from() ' שיטה כדי להמיר את האובייקט למערך ולאחר מכן להשתמש בשיטת forEach() עליו. מאמר זה תיאר את התרחשות ופתרון השגיאה שהוזכרה.