สมมติว่าเรามีอาร์เรย์ของวัตถุที่มีข้อมูลบางอย่างเกี่ยวกับผู้ใช้บางคนเช่นนี้ −
const arr = [
{
"name":"aaa",
"id":"2100",
"designation":"developer"
},
{
"name":"bbb",
"id":"8888",
"designation":"team lead"
},
{
"name":"ccc",
"id":"6745",
"designation":"manager"
},
{
"name":"aaa",
"id":"9899",
"designation":"sw"
}
]; เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ดังกล่าว จากนั้นฟังก์ชันของเราควรส่งคืนอ็อบเจ็กต์ใหม่ที่มีค่าคุณสมบัติชื่อทั้งหมดที่แมปกับจำนวนอ็อบเจ็กต์ที่มีคุณสมบัติชื่อเฉพาะนั้น
ดังนั้น สำหรับอาร์เรย์ข้างต้น ผลลัพธ์ควรมีลักษณะดังนี้ −
const output = {
"aaa": 2,
"bbb": 1,
"ccc": 1
}; ตัวอย่าง
รหัสสำหรับสิ่งนี้จะเป็น −
const arr = [
{
"name":"aaa",
"id":"2100",
"designation":"developer"
},
{
"name":"bbb",
"id":"8888",
"designation":"team lead"
},
{
"name":"ccc",
"id":"6745",
"designation":"manager"
},
{
"name":"aaa",
"id":"9899",
"designation":"sw"
}
];
const countNames = (arr = []) => {
const res = {};
for(let i = 0; i < arr.length; i++){
const { name } = arr[i];
if(res.hasOwnProperty(name)){
res[name]++;
}
else{
res[name] = 1;
};
};
return res;
};
console.log(countNames(arr)); ผลลัพธ์
และผลลัพธ์ในคอนโซลจะเป็น −
{ aaa: 2, bbb: 1, ccc: 1 }