I have an array with different objects where each object is an classes. Looks like this:
sessions = [
{ session_id: 1, time: '09:00', student: { student_id: 1, name: 'Adi' }, class: { class_id: 1, name: 'A' } },
{ session_id: 2, time: '10:00', student: { student_id: 7, name: 'Dede' }, class: { class_id: 4, name: 'D' } },
{ session_id: 1, time: '09:00', student: { student_id: 3, name: 'Bayu' }, class: { class_id: 2, name: 'B' } },
{ session_id: 1, time: '09:00', student: { student_id: 2, name: 'Budi' }, class: { class_id: 1, name: 'A' } },
{ session_id: 2, time: '10:00', student: { student_id: 3, name: 'Maha' }, class: { class_id: 3, name: 'C' } },
];
I want to change the data to be like this, (grouping by session_id or time):
sessions = [
{
session_id: 1,
time: '09:00',
classes: [
{
class_id: 1,
name: 'A',
students: [
{ student_id: 1, name: 'Adi' },
{ student_id: 1, name: 'Budi' },
],
},
{
class_id: 2,
name: 'B',
students: [
{ student_id: 3, name: 'Bayu' },
],
},
],
},
{
session_id: 2,
time: '10:00',
classes: [
{
class_id: 3,
name: 'C',
students: [
{ student_id: 6, name: 'Maha' },
],
},
{
class_id: 4,
name: 'D',
students: [
{ student_id: 7, name: 'Dede' },
],
},
],
},
];
I'm tired of trying to solve it, because my javascript isn't that great. please help me to solve the code.