মান লজিয়ে, আমাদের নিচের মতো একটি অবজেক্টের অ্যারে আছে −
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"}
];
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা এমন একটি অবজেক্টের অ্যারে নেয়। ফাংশনটি অ্যারে-তে ডুপ্লিকেট অবজেক্টের সংখ্যা গণনা করবে (অবজেক্টের "code" প্রপার্টি ভিত্তিক) এবং প্রতিটি ইউনিক অবজেক্টে একটি নতুন count প্রপার্টি অ্যাসাইন করবে।
ফাংশনটি একটি child প্রপার্টিও অ্যাসাইন করবে যার মান হবে ১ যদি বয়স (DOB এবং বর্তমান তারিখ ব্যবহার করে ক্যালকুলেটেড) ১৮ বছরের চেয়ে কম হয়, অন্যথায় ০।
উদাহরণ
এটির কোড হবে −
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 }
}