কম্পিউটার

জাভাস্ক্রিপ্টে অ্যারের প্রতিটি বস্তুর জন্য ডুপ্লিকেট মার্জ করুন এবং সংখ্যা বাড়ান


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

const arr = [
   {code: "AA", gender:"male", DOB:"2000-05-15"},
   {code: "AA", gender:"female", DOB:"2015-05-15"},
   {code:"A0", gender:"female", DOB:"2005-01-01"},
   {code: "A1", gender:"male", DOB:"2015-01-15"}
];

আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা এমন একটি অ্যারে অবজেক্টে নেয়। ফাংশনটি অ্যারেতে সদৃশ বস্তুর সংখ্যা গণনা করা উচিত (অবজেক্টের "কোড" বৈশিষ্ট্যের উপর ভিত্তি করে) এবং প্রতিটি অনন্য বস্তুর জন্য একটি নতুন গণনা বৈশিষ্ট্য নির্ধারণ করা উচিত।

ফাংশনটি প্রতিটি অনন্য বস্তুর জন্য একটি চাইল্ড প্রপার্টি বরাদ্দ করা উচিত যার মান হবে 1 যদি বয়স ("DOB" ব্যবহার করে গণনা করা হয়) 18 বছরের কম, অন্যথায় 0।

উদাহরণ

এর জন্য কোড হবে −

const arr = [
   {code: "AA", gender:"male", DOB:"2000−05−15"},
   {code: "AA", gender:"female", DOB:"2015−05−15"},
   {code:"A0", gender:"female", DOB:"2005−01−01"},
   {code: "A1", gender:"male", DOB:"2015−01−15"}
];
const groupAndAdd = (arr = []) => {
   const result = new Map();
   let nowYear = new Date().getYear();
   arr.forEach(el => {
      let item = result.get(el.code) || {code: el.code, count: 0, female: 0, child: 0 };
      item.count++;
      item.female += el.gender === "female";
      item.child += nowYear − new Date(Date.parse(el.DOB)).getYear() <18;
      result.set(item.code, item);
   });
   return result;
};
console.log(groupAndAdd(arr));

আউটপুট

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

Map {
   'AA' => { code: 'AA', count: 2, female: 1, child: 1 },
   'A0' => { code: 'A0', count: 1, female: 1, child: 1 },
   'A1' => { code: 'A1', count: 1, female: 0, child: 1 }
}

  1. নতুন অ্যারেতে জাভাস্ক্রিপ্ট অবজেক্ট ফরম্যাটিং

  2. কিভাবে জাভাস্ক্রিপ্টের সাথে একটি একক অবজেক্ট অ্যারেতে বস্তুগুলিকে একত্রিত করবেন?

  3. জাভাস্ক্রিপ্টে প্রতিটি বস্তুর জন্য একটি অনন্য আইডি কীভাবে তৈরি করবেন?

  4. জাভাস্ক্রিপ্ট ব্যবহার করে সাজানো এবং একটি অ্যারের জন্য পার্থক্যের যোগফল খুঁজে বের করা