Computer >> Hướng Dẫn 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ảng đối tượng như sau:

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 ta cần viết hàm JavaScript nhận vào mảng đối tượng này. Hàm đếm số lượng thuộc tính user duy nhất tồn tại trong mảng này.

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

Ví dụ

Mã thực hiện:

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

Kết quả

Kết quả in ra console:

{ Paul: 1, Simon: 2 }