কম্পিউটার

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


ধরুন আমাদের কাছে এই ধরনের বস্তুর একটি অ্যারে আছে −

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 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. জাভাস্ক্রিপ্টে অ্যারে স্লাইস()

  2. জাভাস্ক্রিপ্টে অ্যারে শিফট()

  3. জাভাস্ক্রিপ্টে অ্যারে রিভার্স()

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