मान लीजिए, हमारे पास ऑब्जेक्ट्स की एक सरणी है जैसे -
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"} ];हमें एक JavaScript फ़ंक्शन लिखना है जो ऐसी ऑब्जेक्ट्स की सरणी लेता है। फ़ंक्शन को सरणी में डुप्लिकेट ऑब्जेक्ट्स की संख्या गिननी चाहिए ("code" गुण के आधार पर) और प्रत्येक अद्वितीय ऑब्जेक्ट को एक नया count गुण निर्दिष्ट करना चाहिए।
फ़ंक्शन को प्रत्येक अद्वितीय ऑब्जेक्ट को एक child गुण भी निर्दिष्ट करना चाहिए जिसका मान 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 } }