首页 > 解决方案 > 通过键javascript对一组对象进行分组

问题描述

我有一个这样的对象数组。

[
   {
      NAME: 'TEST_1',
      ORG: 'A',
      FROM: '20191223',
      TO: '99991231'
    },

   {
      NAME: 'TEST_1',
      ORG: 'B',
      FROM: '20191223',
      TO: '99991231'
   },

   {
      NAME: 'TEST_2',
      ORG: 'C',
      FROM: '20191223',
      TO: '99991231'
   },
   {
      NAME: 'TEST_2',
      ORG: 'D',
      FROM: '20191223',
      TO: '99991231'
   }
]

我想对对象数组进行分组NAME并将其推入ORG数组中。

[
   {
      NAME: 'TEST_1',
      ORG: ['A', 'B']
      FROM: '20191223',
      TO: '99991231'
   },
      {
      NAME: 'TEST_1',
      ORG: ['C', 'D']
      FROM: '20191223',
      TO: '99991231'
   }
 ]

我尝试使用 reduce 函数,但它没有给我想要的结果。

let group = this.myObj.reduce((r, a) => {

  r[a.NAME] = [...r[a.NAME] || [], a];
  return r;
}, {});
console.log("group", group);

标签: javascript

解决方案


推荐阅读