Computer >> Máy Tính >  >> Lập trình >> Javascript

Kiểm tra xem có bao nhiêu đối tượng trong mảng có cùng một khóa trong JavaScript

Giả sử, chúng ta có một mảng đối tượng chứa một số dữ liệu về một số người dùng như thế này -

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"
   }
];

Chúng tôi được yêu cầu viết một hàm JavaScript có trong một mảng như vậy. Sau đó, hàm của chúng ta sẽ trả về một đối tượng mới chứa tất cả các giá trị thuộc tính tên được ánh xạ tới số lượng đối tượng có chứa thuộc tính tên cụ thể đó.

Do đó, đối với mảng trên, đầu ra sẽ giống như -

const output = {
   "aaa": 2,
   "bbb": 1,
   "ccc": 1
};

Ví dụ

Mã cho điều này sẽ là -

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));

Đầu ra

Và đầu ra trong bảng điều khiển sẽ là -

{ aaa: 2, bbb: 1, ccc: 1 }