ఈ కథనం పేర్కొన్న లోపం మరియు దాని సాధ్యమైన పరిష్కారాలను నిర్వచిస్తుంది.
“TypeError: object.forEach is not a function in JavaScript” ఎలా జరుగుతుంది?
అర్రే, మ్యాప్ లేదా సెట్ లేని విలువను ఉపయోగించినప్పుడు, ' ప్రతి() 'వంటి పద్ధతి' వస్తువు 'మరియు మొదలైనవి,' TypeError: object.forEach అనేది JavaScriptలో ఫంక్షన్ కాదు ” సంభవిస్తుంది. పేర్కొన్న కారణాన్ని ఆచరణాత్మకంగా పరీక్షిద్దాం.
ఉదాహరణ
ఇచ్చిన ఉదాహరణలో, ముందుగా, కీ-విలువ జతలో దాని లక్షణాలతో ఒక వస్తువును సృష్టిస్తాము:
స్థిరంగా వస్తువు = {
పేరు : 'స్టీఫెన్' ,
రోల్నో : పదకొండు ,
విషయం : 'వాణిజ్యం'
} ;
అప్పుడు, forEach() పద్ధతిని ఉపయోగించి కన్సోల్లో దాని లక్షణాలు/ఎంట్రీలను ప్రింట్ చేయండి:
వస్తువు. ప్రతి ( ఓ => {
కన్సోల్. లాగ్ ( ఓ ) ;
} ) ;
మీరు అవుట్పుట్లో చూడగలిగినట్లుగా, ఆబ్జెక్ట్లకు forEach పద్ధతి వర్తించనందున లోపం ఏర్పడింది:
పేర్కొన్న లోపాన్ని ఎలా పరిష్కరించాలి?
పైన చర్చించిన లోపాన్ని పరిష్కరించడానికి, ఆబ్జెక్ట్ యొక్క పద్ధతులను ఉపయోగించండి ' Object.keys() 'అరేలో కీలను పొందడానికి,' Object.values() 'ఆబ్జెక్ట్ యొక్క విలువలను పొందడానికి, లేదా' Object.entries() ”ఒక వస్తువు యొక్క అన్ని ఎంట్రీలను తిరిగి పొందడం కోసం. అంతేకాకుండా, ' Array.from() ” పద్ధతి పేర్కొన్న వస్తువును వస్తువుల శ్రేణిగా మారుస్తుంది.
ఈ సమస్యను పరిష్కరించడానికి ఒక ఉదాహరణను ప్రయత్నిద్దాం.
ఉదాహరణ 1: Object.entries() పద్ధతిని ఉపయోగించి పేర్కొన్న లోపాన్ని పరిష్కరించండి
ఈ ఉదాహరణలో, మేము ''ని ఉపయోగించి ఒక వస్తువు యొక్క ఎంట్రీలను పొందుతాము. Object.entries() 'తో పద్ధతి' ప్రతి() 'కీ-విలువ జతలలో ఆబ్జెక్ట్ ఎంట్రీల శ్రేణిని అందించే పద్ధతి:
వస్తువు . ఎంట్రీలు ( వస్తువు ) . ప్రతి ( లో => {కన్సోల్. లాగ్ ( లో ) ;
} ) ;
ఇది లోపాన్ని ఇవ్వదు, ఎందుకంటే Object.entries() పద్ధతి శ్రేణిలోని విలువలను మారుస్తుంది మరియు ప్రతి మూలకంపై ఇచ్చిన ఫంక్షన్ను అమలు చేయడానికి forEach() పద్ధతి ఉపయోగించబడుతుంది.
Object.entries() పద్ధతిని ఉపయోగించి ఆబ్జెక్ట్పై forEach() పద్ధతి విజయవంతంగా అమలు చేయబడుతుందని అవుట్పుట్ సూచిస్తుంది:
గమనిక: ప్రతి పద్ధతి Object.keys() మరియు Object.values() పద్ధతిని ఉపయోగించి వస్తువు యొక్క కీలు మరియు విలువలను పొందడానికి కూడా వర్తించబడుతుంది.
ఇప్పుడు, మీరు ఆబ్జెక్ట్ కీలు, విలువలు లేదా ఎంట్రీలను పొందకూడదనుకుంటే చూద్దాం, కాబట్టి మీరు ఏమి చేస్తారు? ఇచ్చిన ఉదాహరణ చూడండి!
ఉదాహరణ 2: Array.from() పద్ధతిని ఉపయోగించి పేర్కొన్న లోపాన్ని పరిష్కరించండి
ఈ లోపాన్ని పరిష్కరించడానికి, ఆబ్జెక్ట్ను ఆబ్జెక్ట్ల శ్రేణిగా మార్చండి మరియు దానిపై forEach() పద్ధతిని ఉపయోగించి “ Array.from() ” పద్ధతి. ఇది లోపం లేకుండా వస్తువు యొక్క అన్ని లక్షణాలను ముద్రిస్తుంది.
ముందుగా ఆబ్జెక్ట్ను ఆబ్జెక్ట్ల శ్రేణిగా మారుద్దాం:
స్థిరంగా వస్తువు = [ {పేరు : 'స్టీఫెన్' ,
రోల్నో : పదకొండు ,
విషయం : 'వాణిజ్యం'
} ]
forEach() పద్ధతికి కాల్ చేయండి:
అమరిక . నుండి ( వస్తువు ) . ప్రతి ( వద్ద => {కన్సోల్. లాగ్ ( వద్ద ) ;
} ) ;
అవుట్పుట్
పేర్కొన్న లోపాన్ని పరిష్కరించడానికి మేము అన్ని ఉత్తమ పరిష్కారాలను సంకలనం చేసాము.
ముగింపు
మీరు 'ని ఉపయోగించడానికి ప్రయత్నించినప్పుడు పేర్కొన్న లోపం సంభవిస్తుంది ప్రతి() ”అరే, సెట్ లేదా మ్యాప్ లేని విలువపై పద్ధతి. ఈ లోపాన్ని పరిష్కరించడానికి, 'ని ఉపయోగించండి Array.from() ”ఆబ్జెక్ట్ను శ్రేణికి మార్చడానికి మరియు దానిపై forEach() పద్ధతిని ఉపయోగించడానికి పద్ధతి. ఈ వ్యాసంలో పేర్కొన్న లోపం సంభవించిన మరియు పరిష్కారాన్ని వివరించింది.