मान लीजिए, हमारे पास कुछ छात्रों के बारे में डेटा वाली ऑब्जेक्ट्स की एक सरणी है जैसे −
const arr = [{ name: 'A', idNo: 1, marks: { math: 98, sci: 97, eng: 89 } }, { name: 'B', idNo: 2, marks: { math: 88, sci: 87, eng: 79 } }, { name: 'C', idNo: 3, marks: { math: 87, sci: 98, eng: 91 } }];हमें एक JavaScript फ़ंक्शन लिखना आवश्यक है जो ऐसी एक सरणी लेता है।
हमारा फ़ंक्शन तब प्रॉपर्टीज का एक ऑब्जेक्ट तैयार करना चाहिए, वर्तमान में ऑब्जेक्ट्स में प्रत्येक ऑब्जेक्ट आईडी के लिए एक प्रॉपर्टी।
इसलिए, उपरोक्त सरणी के लिए, आउटपुट इस तरह दिखना चाहिए −
const output = { name: [A, B, C], idNo: [1, 2, 3], marks: [{ math: 98, sci: 97, eng: 89 }, { math: 88, sci: 87, eng: 79 }, { math: 87, sci: 98, eng: 91 }] };उदाहरण
इसके लिए कोड होगा −
const arr = [{ name: 'A', idNo: 1, marks: { math: 98, sci: 97, eng: 89 } }, { name: 'B', idNo: 2, marks: { math: 88, sci: 87, eng: 79 } }, { name: 'C', idNo: 3, marks: { math: 87, sci: 98, eng: 91 } }]; const combineMarks = (arr = []) => { let res = []; res = arr.reduce((acc, val) => { Object.keys(val).forEach(el => { if (!acc[el]) { acc[el] = []; }; acc[el].push(val[el]) }); return acc; }, {}); return res; }; console.log(combineMarks(arr));आउटपुट
और कंसोल में आउटपुट होगा −
{ name: [ 'A', 'B', 'C' ], idNo: [ 1, 2, 3 ], marks: [ { math: 98, sci: 97, eng: 89 }, { math: 88, sci: 87, eng: 79 }, { math: 87, sci: 98, eng: 91 } ] }