Search code examples
javascriptarraysjsonobjectjavascript-objects

convert JS object to Object Array


I have an array of objects as below

[
  {
    Instance: 'USM 1',
    performance:
      '<DanPac_A>.<Daniel.DanOPCHub>.<A Session.Perfomance>',
    agc: '<DanPac_A>.<Daniel.DanOPCHub>.<A Session.AGC>',
    snr: '<DanPac_A>.<Daniel.DanOPCHub>.<A Session.SNR>',
    sos: '<DanPac_A>.<Daniel.DanOPCHub>.<A Session.SNR>',
    flowvel: '<DanPac_A>.<Daniel.DanOPCHub>.<A Session.SNR>',
  },
];

I need to take Instance out as a key and use its value as a property instead.

expected output

[
  {
    'USM 1': [
      {
        performance: 'value',
        agc: 'value',
        // ...
      },
    ],
  },
];

any idea how to take it out??


Solution

  • You could use Array::map():

    const arr = [{
        "Instance": "USM 1",
        "performance": "<DanPac_A>.<Daniel.DanOPCHub>.<A Session.Perfomance>",
        "agc": "<DanPac_A>.<Daniel.DanOPCHub>.<A Session.AGC>",
        "snr": "<DanPac_A>.<Daniel.DanOPCHub>.<A Session.SNR>",
        "sos": "<DanPac_A>.<Daniel.DanOPCHub>.<A Session.SNR>",
        "flowvel": "<DanPac_A>.<Daniel.DanOPCHub>.<A Session.SNR>"
    }];
    
    const mapped = arr.map(({Instance, ...item}) => ({[Instance]: [item]}));
        
    console.log(mapped);