TypeError: object.forEach אינה פונקציה ב-JavaScript

Typeerror Object Foreach Ynh Pwnqzyh B Javascript



ב-JavaScript, ה' לכל אחד() ' השיטה מבצעת פונקציה נתונה פעם אחת עבור כל רכיב מערך. השיטה forEach() משמשת בכל רכיב של מערך, סט או מפה. אם תנסה להשתמש בשיטה זו בכל סוג אחר, היא תגרום לשגיאה ' object.forEach אינה פונקציה ב-JavaScript '. אז, השתמש בו על מערכים, מפות או סטים או המר את הערכים לסוגים אלה ולאחר מכן החל את השיטה הזו עליהם.

מאמר זה יגדיר את השגיאה שהוזכרה ואת פתרונותיה האפשריים.

כיצד '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() עליו. מאמר זה תיאר את התרחשות ופתרון השגיאה שהוזכרה.