使用 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 函式,該函式接收一個這樣的陣列。然後,我們的函式應該返回一個新物件,其中包含所有 name 屬性值,這些值對映到包含該特定 name 屬性的計數。

因此,對於上述陣列,輸出應如下所示 −

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 }

更新於: 21-11-2020

1K+ 瀏覽量

開啟你的職業生涯

完成課程並獲得認證

開始
廣告