var data = [
{
"id": 1,
"name": "A1",
"day": "mon",
"candidate": 5
},
{
"id": 2,
"name": "A2",
"day": "mon",
"candidate": 2
},
{
"id": 3,
"name": "A3",
"day": "mon",
"candidate": 9
},
{
"id": 4,
"name": "B1",
"day": "tue",
"candidate": 5
}
];
// var result = {
// monday: [
// { "id": 1, "name": "A1", "day": "mon", "candidate": 5 },
// { "id": 2, "name": "A2", "day": "mon", "candidate": 2 },
// { "id": 3, "name": "A3", "day": "mon", "candidate": 9 }
// ],
// tuesday: [
// { "id": 4, "name": "B1", "day": "tue", "candidate": 5 }
// ]
// }
// ===
const days = [
{
"id": 1,
"name": "A",
"day": "mon",
"candidate": 5
},
{
"id": 2,
"name": "A",
"day": "mon",
"candidate": 4
},
{
"id": 3,
"name": "A",
"day": "mon",
"candidate": 3
},
{
"id": 4,
"name": "A",
"day": "tue",
"candidate": 2
}
]
function getTH(dayString) {
switch(dayString) {
case "mon": return "Monday";
case "tue": return "Tuesday";
case "wed": return "Wednesday";
case "thu": return "Thursday";
case "fri": return "Friday";
case "sat": return "Saturday";
case "sun": return "Sunday";
}
}
let newDaysFormatObject = {
Monday: [],
Tuesday: [],
Wednesday: [],
Thursday: [],
Friday: [],
Saturday: [],
Sunday: []
};
days.forEach(d => {
const dayTH = getTH(d.day);
const {day, name, candidate} = d;
newDaysFormatObject[dayTH] = [...newDaysFormatObject[dayTH], {day, name, candidate}]
});
// console.log(newDaysFormatObject);
// ===
function groupByKey(array,key) {
return array.reduce((hask,obj)=>{
if(obj[key] === undefined) return hask;
return Object.assign(hask, {
[obj[key]] : (hask[obj[key]] || []).concat(obj)
},{});
});
}
const cars = [
{
"id": 1,
"name": "A",
"day": "mon",
"candidate": 5
},
{
"id": 2,
"name": "A",
"day": "mon",
"candidate": 4
},
{
"id": 3,
"name": "A",
"day": "mon",
"candidate": 3
},
{
"id": 4,
"name": "A",
"day": "tue",
"candidate": 2
}
];
console.log(groupByKey(cars,"day"));