मान लीजिए, हमारे पास इस तरह की सरणियों की एक सरणी है -
const arr = [ ["Ashley","2017-01-10",80], ["Ashley","2017-02-10",75], ["Ashley","2017-03-10",85], ["Clara","2017-01-10",90], ["Clara","2017-02-10",82] ];
हमें एक जावास्क्रिप्ट फ़ंक्शन लिखने की आवश्यकता है जो पहले और एकमात्र इनपुट के रूप में ऐसी एक सरणी लेता है।
फ़ंक्शन को तब इनपुट सरणी के आधार पर वस्तुओं की एक नई सरणी का निर्माण करना चाहिए। सरणी में इनपुट सरणी के प्रत्येक अद्वितीय उप-सरणी के लिए एक वस्तु होनी चाहिए। (अद्वितीय से, इस संदर्भ में, हमारा मतलब उस उप-सरणी से है जिसका पहला तत्व अद्वितीय है)।
प्रत्येक वस्तु में निम्न स्कीमा होना चाहिए -
const output = [ {"name":"Ashley", "2017-01-10":80, "2017-02-10":75, "2017-03-10":85}, {"name":"Clara", "2017-01-10":90, "2017-02-10":82} ];
उदाहरण
const arr = [ ["Ashley","2017-01-10",80], ["Ashley","2017-02-10",75], ["Ashley","2017-03-10",85], ["Clara","2017-01-10",90], ["Clara","2017-02-10",82] ]; const groupArray = (arr = []) => { let grouped = []; grouped = arr.reduce(function (hash) { return function (r, a) { if (!hash[a[0]]) { hash[a[0]] = { name: a[0] }; r.push(hash[a[0]]); } hash[a[0]][a[1]] = a[2]; return r; }; } (Object.create(null)), []); return grouped; } console.log(groupArray(arr));
आउटपुट
और कंसोल में आउटपुट होगा -
[ { name: 'Ashley', '2017-01-10': 80, '2017-02-10': 75, '2017-03-10': 85 }, { name: 'Clara', '2017-01-10': 90, '2017-02-10': 82 } ]