在 JavaScript 中检查数组中有多少个具有相同键的对象

javascriptweb developmentfront end technologyobject oriented programming

假设,我们有一个对象数组,其中包含一些有关某些用户的数据,例如 −

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 }

相关文章