假设我们有一个像这样的对象数组-
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 }