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

ตรวจสอบจำนวนอ็อบเจ็กต์ที่อยู่ในอาร์เรย์ด้วยคีย์เดียวกันใน JavaScript


สมมติว่าเรามีอาร์เรย์ของวัตถุที่มีข้อมูลบางอย่างเกี่ยวกับผู้ใช้บางคนเช่นนี้ −

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 }