Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

นับด้วยคีย์ที่ไม่ซ้ำใน 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"
   }
];

เราจำเป็นต้องเขียนฟังก์ชัน 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 }