JSFiddle - React, Tailwind, and code Playground
JavaScript
var data = [
{
"Month": "Jan",
"Year": 2015,
"Count": 15
},
{
"Month": "Feb",
"Year": 2015,
"Count": 5
},
{
"Month": "Jan",
"Year": 2016,
"Count": 25
},
{
"Month": "Feb",
"Year": 2016,
"Count": 50
}
];
/*
I want to group the data using JavaScript to get the below output. Can someone help me with this?
[
{
"Month": "Jan"
"Count_2015": 15,
"Count_2016": 25
},
{
"Month": "Feb"
"Count_2015": 5,
"Count_2016": 50
}
]
*/
var months = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];
var result = [];
[].forEach.call(months, function(month) {
var monthObj = {"Month": month};
result.push(monthObj);
});
let mi, year, keystr
for (var i=0; i< data.length; i++) {
var obj = data[i];
for (var key in obj) {
if (!obj.hasOwnProperty(key)) continue;
var value = obj[key];
switch (key) {
case "Month":
mi = months.indexOf(value);
break;
case "Year":
year = value;
break;
case "Count":
keystr = "Count_" + year.toString();
resObj = result[mi];
resObj[keystr] = value;
break;
}
}
}
console.log(result);