สมมติว่าเรามีอาร์เรย์ของวัตถุที่มีข้อมูลบางอย่างเกี่ยวกับผู้ใช้บางคนเช่นนี้ −
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 }