-1

I have JSON object like this:

 jsonData =[
{
  'ApplicationName':'Chrome',
  'env':'Linux',
  'status':'Work'
},
{
  'ApplicationName':'Chrome',
  'env':'Window',
  'status':'Work'
},
  {
  'ApplicationName':'Chrome',
  'env':'IOS',
  'status':'Not Work'
}];

I want to merge in the optimal way so that my returned JSON object look this:

  jsonData =[
{
  'ApplicationName':'Chrome',
  'GroupedEnv':[{'env':'Linux',status:'Work'},{'env':'Window',status:'Work'},{'env':'IOS',status:'Not Work'}]

}];
user3045179
  • 321
  • 4
  • 20

1 Answers1

2

This is a very quick example:

const reduced = jsonData.reduce((acc, curr) => {

    var appName = curr.ApplicationName;
    acc[appName] = acc[appName] || [];
    acc[appName].push({
        env: curr.env,
        status: curr.env
    });

    return acc;

}, {});

const asArray = Object.getOwnPropertyNames(reduced).map((prop) => {

    return {
        ApplicationName: prop,
        GroupedEnv: reduced[prop]
    };

});
luisenrike
  • 2,742
  • 17
  • 23