In the below array I am trying to convert "reporting" object into an array of objects. Below is how I am trying:
const data = [{
m_id: '61',
reporting: {
0: {
report_cd: 'L',
report_category: 'Light Vehicles'
},
1: {
report_cd: 'M',
report_category: 'Motorcycles'
}
}
},
{
m_id: '62',
reporting: {
0: {
report_cd: 'L',
report_category: ' Extra Light Vehicles'
},
1: {
report_cd: 'M',
report_category: 'Bike'
},
2: {
report_cd: 'H',
report_category: 'Extra Heavy'
}
}
}
];
var arr = [];
for (let j = 0; j < data.length; j++) {
let keys = Object.keys(data[j].reporting);
for (var i = 0, n = keys.length; i < n; i++) {
var key = keys[i];
arr[key] = data[j].reporting[key];
}
data[j].reporting = arr;
}
console.log(data);
I am able to convert it into an array in the current output but there's some problem in my loop due to which for both the objects I am getting back 3 arrays for reporting:
Current Output :
[{
"m_id": "61",
"reporting": [{
"report_cd": "L",
"report_category": " Extra Light Vehicles"
}, {
"report_cd": "M",
"report_category": "Bike"
}, {
"report_cd": "H",
"report_category": "Extra Heavy"
}]
}, {
"m_id": "62",
"reporting": [{
"report_cd": "L",
"report_category": " Extra Light Vehicles"
}, {
"report_cd": "M",
"report_category": "Bike"
}, {
"report_cd": "H",
"report_category": "Extra Heavy"
}]
}]
Expected Output:
[{
"m_id": "61",
"reporting": [{
"report_cd": "L",
"report_category": "Light Vehicles"
}, {
"report_cd": "M",
"report_category": "Motorcycles"
}]
}, {
"m_id": "62",
"reporting": [{
"report_cd": "L",
"report_category": " Extra Light Vehicles"
}, {
"report_cd": "M",
"report_category": "Bike"
}, {
"report_cd": "H",
"report_category": "Extra Heavy"
}]
}]