ধরুন, আমাদের কাছে এই ধরনের বস্তুর একটি অ্যারে আছে −
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 } }