如何使用对象 属性 计算对象数组中唯一元素的数量?

How do I count the number of unique elements in an array of objects using the object property?

我有一个如下所示的数组:

let arr = [
    {'option1':1},{'option1':1},{'option1':1},
    {'option1':2},{'option1':2},
    {'option1':3},
    {'option2':1},{'option2':1}
]

我需要遍历数组并计算具有相同 属性 的每个元素的出现次数,以便显示如下:

   option1:{
            1:3,
            2:2,
            3:1,
           },
   option2:{
            1:2,
           }

基本上说 属性 为 1 的选项 1 有 3 个计数,属性 为 2 的选项 1 有 2 个计数,属性 为 3 的选项 1 有 1 个计数和等等。

这样...

let arr = 
  [ { option1: 1 }, { option1: 1 }, { option1: 1 } 
  , { option1: 2 }, { option1: 2 } 
  , { option1: 3 } 
  , { option2: 1 }, { option2: 1 } 
  ] 

let obj = arr.reduce((r,o)=>
  {
  let [name,num] = Object.entries(o)[0] 
  if (!r[name]) r[name] = {}
  if (!r[name][num]) r[name][num] = 1
  else               r[name][num]++
  return r
  },{})

console.log( obj )
.as-console-wrapper { max-height: 100% !important; top: 0 }