Javascript 按公用键(日期字符串)对对象数组进行分组

Javascript 按公用键(日期字符串)对对象数组进行分组,javascript,Javascript,我有一个数组,如下所示 const list = [ { date: "2020-01-01", number: 3, count: 2 }, { date: "2020-01-01",

我有一个数组,如下所示

            const list = [
               {
                 date: "2020-01-01",
                 number: 3,
                 count: 2
               },
               {
                 date: "2020-01-01",
                 number: 3,
                 count: 2
               },
               {
                 date: "2020-01-01",
                 number: 3,
                 count: 2
               },
               {
                 date: "2020-01-02",
                 number: 4,
                 count: 1
               },
               {
                 date: "2020-01-02",
                 number: 4,
                 count: 1
               }
             ]
我想把数字和计数相加,取决于同一个日期。之后,应在同一日期合并。因此,我希望得到如下结果。

   const list = [{
     totalNumber: 9,
     totalCount: 6,
     detail:[{
             date: "2020-01-01",
             number: 3,
             count: 2
           },
           {
             date: "2020-01-01",
             number: 3,
             count: 2
           },
           {
             date: "2020-01-01",
             number: 3,
             count: 2
           }]
          },
      {
          totalNumber: 8,
          totalCount: 2,
          detail:[  
          {
             date: "2020-01-02",
             number: 4,
             count: 1
           },
           {
             date: "2020-01-02",
             number: 4,
             count: 1
           }]
         }
         ]

我知道stackoverflow不是代码编写站点。但我是根据一些数据做的。但这是我完成目标的最后阶段。我不知道我怎么能这样分组。如果你能帮我解决这个问题,我将不胜感激。非常感谢您的阅读。

常见的模式可能是构建一个对象,使用公共键作为键名,使用汇总数据对象作为值,然后使用以下方法将这些值提取到对象数组中:

const src=[{date:“2020-01-01”,number:3,count:2},{date:“2020-01-01”,number:3,count:2},{date:“2020-01-02”,number:4,count:1},{date:“2020-01-02”,number:4,count:1}],
结果=对象值(src.reduce((r,o)=>{
r[o.date]=r[o.date]|{日期:o.date,totalNumber:0,totalCount:0,详细信息:[]}
r[o.date].totalNumber+=o.number
r[o.date].totalCount+=o.count
r[o.date]。详细信息。推送(o)
返回r
},{}))
console.log(结果)
.as控制台包装{min height:100%;}
“我知道stackoverflow不是代码编写站点”-幸运的是,这种类型的“问题”在这里已经有了答案。您只需搜索它们->“javascript组对象数组”