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

Đếm theo khóa duy nhất trong JavaScript

Giả sử, chúng ta có một mảng các đối tượng như thế này -

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

Chúng tôi được yêu cầu viết một hàm JavaScript có trong một mảng các đối tượng như vậy. Sau đó, hàm sẽ đếm số thuộc tính "người dùng" duy nhất tồn tại trong mảng đối tượng này.

Sau đó, hàm sẽ đẩy tất cả các đối tượng duy nhất như vậy vào một mảng mới và trả về mảng đó.

Ví dụ

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

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

Đầu ra

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

{ Paul: 1, Simon: 2 }