কম্পিউটার টিউটোরিয়াল

জাভাস্ক্রিপ্টে ডেটা মাস-ভিত্তিক গ্রুপ করা


মান লজিয়ে, আমাদের কিছু ইউজারের ডেটা আছে নিচের মতো −

const obj = {
  "Mary": {
    "2016-1": 2,
    "2016-5": 1,
    "2016-3": 1
  },
  "Paul": {
    "2016-1": 1,
    "2016-3": 1
  },
  "moth": {
    "2016-1": 2,
    "2016-5": 1
  }
};

আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা এমন একটি অবজেক্ট নেয়। ফাংশনটি এই ইউজার ডেটাকে এমন অবজেক্ট-এ গ্রুপ করবে যেটিতে প্রতিটি অনন্য ডেটা একটি অবজেক্ট দিয়ে প্রতিনিধিত্ব করা হবে।

উদাহরণ

এটির কোড হবে −

const obj = {
  "Mary": {
    "2016-1": 2,
    "2016-5": 1,
    "2016-3": 1
  },
  "Paul": {
    "2016-1": 1,
    "2016-3": 1
  },
  "moth": {
    "2016-1": 2,
    "2016-5": 1
  }
};
const groupByDate = (obj = {}) => {
  const names = Object.keys(obj);
  const res = {};
  for(let i = 0; i < names.length; i++){
    const name = names[i];
    const dates = Object.keys(obj[name]);
    for(let j = 0; j < dates.length; j++){
      const date = dates[j];
      if(!res.hasOwnProperty(date)){
        res[date] = {
          names: [name],
          values: [obj[name][date]]
        }
      }
      else{
        res[date].names.push(name);
        res[date].values.push(obj[name][date]);
      };
    };
  };
  return res;
};
console.log(groupByDate(obj));

আউটপুট

কনসোলে আউটপুট হবে −

{
  '2016-1': { names: [ 'Mary', 'Paul', 'moth' ], values: [ 2, 1, 2 ] },
  '2016-5': { names: [ 'Mary', 'moth' ], values: [ 1, 1 ] },
  '2016-3': { names: [ 'Mary', 'Paul' ], values: [ 1, 1 ] }
}

  1. JavaScript-এ Stack ডেটা স্ট্রাকচার: LIFO নীতি এবং সম্পূর্ণ বাস্তবায়ন

  2. জাভাস্ক্রিপ্টে কিউ (Queue) ডেটা স্ট্রাকচার: কনসেপ্ট ও বেসিক

  3. জাভাস্ক্রিপ্টে হ্যাশ টেবিল ডেটা স্ট্রাকচার

  4. জাভাস্ক্রিপ্টে গ্রুপিং অপারেটর ব্যাখ্যা