使用 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 }

更新日期:20-Nov-2020

562 阅览

开启您的 事业

完成课程并获得认证

开始
广告
© . All rights reserved.