मान लीजिए, हमारे पास सरणियों की एक सरणी है जैसे -
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] ];
हमें एक JavaScript फ़ंक्शन लिखना है जो ऐसी एक सरणी को पहले और एकमात्र इनपुट के रूप में लेता है।
फ़ंक्शन को फिर इनपुट सरणी के आधार पर ऑब्जेक्ट्स की एक नई सरणी बनानी चाहिए। सरणी में इनपुट सरणी के प्रत्येक अद्वितीय उप-सरणी के लिए एक ऑब्जेक्ट होना चाहिए। (अद्वितीय से, इस संदर्भ में, हमारा मतलब है कि उप-सरणी जिनका पहला तत्व अद्वितीय है)।
प्रत्येक ऑब्जेक्ट में निम्नलिखित स्कीमा होना चाहिए -
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 } ]