ধরুন আমাদের কাছে কিছু বছরের এবং সপ্তাহের ডেটা ধারণকারী একটি অবজেক্ট অ্যারে আছে −
const arr = [ {year: 2017, week: 45}, {year: 2017, week: 46}, {year: 2017, week: 47}, {year: 2017, week: 48}, {year: 2017, week: 50}, {year: 2017, week: 52}, {year: 2018, week: 1}, {year: 2018, week: 2}, {year: 2018, week: 5} ]; আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা এমন একটি অ্যারে নেবে। ফাংশনটি একটি নতুন অ্যারে রিটার্ন করবে যেখানে "year" প্রপার্টির জন্য একই মান 가진 সব অবজেক্ট আলাদা অবজেক্টে গ্রুপ করা থাকবে।
তাই, উপরের অ্যারে-র জন্য আউটপুট অবজেক্টটি দেখতে এমন হবে −
[ { 2017 : [{ week: 45, week: 46, week: 47, week: 48, week: 50, week: 53 }, { 2018 : [{ week: 1, week: 2, week: 5 }] ]উদাহরণ
কোডটি নিচে দেওয়া হলো −
const arr = [ {year: 2017, week: 45}, {year: 2017, week: 46}, {year: 2017, week: 47}, {year: 2017, week: 48}, {year: 2017, week: 50}, {year: 2017, week: 52}, {year: 2018, week: 1}, {year: 2018, week: 2}, {year: 2018, week: 5} ]; const groupByYear = arr => { const res = []; const map = {}; arr.forEach(item => { const temp = {}; if (!map[item.year]) { map[item.year] = []; temp[item.year] = map[item.year]; res.push(temp); }; map[item.year].push({ value: item.week }); }); return res; }; console.log(JSON.stringify(groupByYear(arr), undefined, 4));আউটপুট
কনসোলে আউটপুট −
[ { "2017": [ { "value": 45 }, { "value": 46 }, { "value": 47 }, { "value": 48 }, { "value": 50 }, { "value": 52 } ] }, { "2018": [ { "value": 1 }, { "value": 2 }, { "value": 5 } ] } ]