I have an array of objects like this.
[
{
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'
}
]
I want to group the array of objects by NAME
and push the ORG
in an array.
[
{
NAME: 'TEST_1',
ORG: ['A', 'B']
FROM: '20191223',
TO: '99991231'
},
{
NAME: 'TEST_1',
ORG: ['C', 'D']
FROM: '20191223',
TO: '99991231'
}
]
I tried to use the reduce function but it does not give me the desired results.
let group = this.myObj.reduce((r, a) => {
r[a.NAME] = [...r[a.NAME] || [], a];
return r;
}, {});
console.log("group", group);