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

জাভাস্ক্রিপ্টে এলিমেন্ট গ্রুপিং এবং ডুপ্লিকেট কাউন্টিং অ্যালগরিদম


সমস্যা বিবরণ

অবজেক্ট অ্যারে দেওয়া আছে। যদি কোনো প্রপার্টি অন্য অবজেক্টের সাথে মিলে, তবে সেটাকে ডুপ্লিকেট মনে করা হবে। প্রথম প্রপার্টি অনুযায়ী গ্রুপ করে ডুপ্লিকেট কাউন্ট দেখাতে হবে।

সমাধান

const arr = [
  {x: 'x', acc: 'acc', val: 'val'},
  {y: 'y', x: 'x', z: 'z'},
  {y: 'y', x: 'x', z: 'z'},
  {x: 'x', c: 'c', val: 'val'}
];

const countOccurrence = (arr = []) => {
  const res = {};
  arr.forEach(item => {
    Object.keys(item).forEach(prop => {
      (res[prop]) ? res[prop] += 1 : res[prop] = 1;
    });
  });
  return res;
};

const groupByOccurrence = (data = []) => {
  const obj = countOccurrence(data);
  const res = Object.keys(obj).reduce((acc, val) => {
    (acc[obj[val]]) ? acc[obj[val]].push(val) : acc[obj[val]] = [val];
    return acc;
  }, {});
  return res;
};

console.log(groupByOccurrence(arr));

আউটপুট

{ '1': [ 'acc', 'c' ], '2': [ 'val', 'y', 'z' ], '4': [ 'x' ] }

ব্যাখ্যা

  • countOccurrence: সব অবজেক্টের সব প্রপার্টি কাউন্ট করে।
  • groupByOccurrence: কাউন্ট অনুযায়ী প্রপার্টি গ্রুপ করে।
  • আউটপুটে '4': ['x'] মানে 'x' প্রপার্টি ৪ বার আসেছে।
  1. জাভাস্ক্রিপ্টে স্পেস সেপারেটেড উপাদান ফ্রিকোয়েন্সি গণনার ফাংশন

  2. জাভাস্ক্রিপ্ট: অ্যাডজেসেন্ট এলিমেন্টস প্রোডাক্ট অ্যালগরিদম

  3. জাভাস্ক্রিপ্টে ইউক্লিডিয়ান অ্যালগরিদম দিয়ে GCD নির্ণয়

  4. জাভাস্ক্রিপ্টে অ্যারে এলিমেন্টে সাধারণ অক্ষর (ডুপ্লিকেট সহ) খুঁজে বের করা