สมมติว่าเรามีอาร์เรย์ของวัตถุเช่นนี้ -
const arr = [ { assigned_user:{ name:'Paul', id: 34158 }, doc_status: "processed" }, { assigned_user:{ name:'Simon', id: 48569 }, doc_status: "processed" }, { assigned_user:{ name:'Simon', id: 48569 }, doc_status: "processed" } ];
เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ของอ็อบเจ็กต์ดังกล่าว จากนั้นฟังก์ชันควรนับจำนวนคุณสมบัติ "ผู้ใช้" ที่ไม่ซ้ำกันซึ่งมีอยู่ในอาร์เรย์ของอ็อบเจ็กต์นี้
จากนั้นฟังก์ชันควรพุชออบเจ็กต์ที่ไม่ซ้ำกันทั้งหมดไปยังอาร์เรย์ใหม่และส่งคืนอาร์เรย์นั้น
ตัวอย่าง
รหัสสำหรับสิ่งนี้จะเป็น −
const arr = [ { assigned_user:{ name:'Paul', id: 34158 }, doc_status: "processed" }, { assigned_user:{ name:'Simon', id: 48569 }, doc_status: "processed" }, { assigned_user:{ name:'Simon', id: 48569 }, doc_status: "processed" } ]; const countUnique = (arr = []) => { let res = []; res = arr.reduce(function (r, o) { let user = o.assigned_user.name; (r[user])? ++r[user] : r[user] = 1; return r; }, {}), result = Object.keys(res).map(function (k) { return {user: k, count: res[k]}; }); return res; } console.log(countUnique(arr));
ผลลัพธ์
และผลลัพธ์ในคอนโซลจะเป็น −
{ Paul: 1, Simon: 2 }