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

জাভাস্ক্রিপ্টে জটিল অ্যারে গ্রুপিং

ধরুন, আমাদের নিচের মতো একটি অবজেক্টের অ্যারে আছে:

const arr = [
  {userId: "3t5bsFB4PJmA3oTnm", from: 1, to: 6},
  {userId: "3t5bsFB4PJmA3oTnm", from: 7, to: 15},
  {userId: "3t5bsFB4PJmA3oTnm", from: 172, to: 181},
  {userId: "3t5bsFB4PJmA3oTnm", from: 182, to: 190}
];

আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা এমন একটি অ্যারে গ্রহণ করে। ফাংশনটি ওভারল্যাপিং অবজেক্টগুলোকেও তাদের "from" এবং "to" প্রপার্টি ভিত্তিক করে একটি একক অবজেক্টে গ্রুপ করবে:

const output = [
  {userId: "3t5bsFB4PJmA3oTnm", from: 1, to: 15},
  {userId: "3t5bsFB4PJmA3oTnm", from: 172, to: 190}
];

উদাহরণ

const arr = [
  {userId: "3t5bsFB4PJmA3oTnm", from: 1, to: 6},
  {userId: "3t5bsFB4PJmA3oTnm", from: 7, to: 15},
  {userId: "3t5bsFB4PJmA3oTnm", from: 172, to: 181},
  {userId: "3t5bsFB4PJmA3oTnm", from: 182, to: 190}
];
const groupByDuration = (arr = []) => {
  const result = arr.reduce((acc, val) => {
    let last = acc[acc.length - 1] || {};
    if (last.userId === val.userId && last.to + 1 === val.from) {
      last.to = val.to;
    } else {
      acc.push({ userId: val.userId, from: val.from, to: val.to });
    }
    return acc;
  }, []);
  return result;
}
console.log(groupByDuration(arr));

আউটপুট

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

[
  { userId: '3t5bsFB4PJmA3oTnm', from: 1, to: 15 },
  { userId: '3t5bsFB4PJmA3oTnm', from: 172, to: 190 }
]
  1. জাভাস্ক্রিপ্ট Array slice() মেথড

  2. জাভাস্ক্রিপ্ট Array shift() মেথড

  3. জাভাস্ক্রিপ্ট Array reverse() মেথড

  4. জাভাস্ক্রিপ্টে অ্যারে ডিস্ট্রাকচারিং