I have a task to filter an array of students with the same 'matrikelnummer' property. I am getting below output now:
{
4251: [
{
adresse: "900 Mitchell Trail",
course: "Medientechnik",
email: "mciccottio0@bandcamp.com",
matrikelnummer: 4251,
nachname: "Ciccottio",
phone: "(533) 9776037",
semester: 5,
vorname: "Médiamass"
}, {
adresse: "7224 Tennessee Hill",
course: "Medieninformatik",
email: "sellingworth1@home.pl",
matrikelnummer: 4251,
nachname: "Ellingworth",
phone: "(129) 5071723",
semester: 4,
vorname: "Tán"
}, {
adresse: "287 Daystar Park",
course: "Informatik",
email: "sreape2@ning.com",
matrikelnummer: 4251,
nachname: "Reape",
phone: "(189) 8272285",
semester: 12,
vorname: "Gisèle"
}
],
4315: [
{
adresse: "4910 Rieder Hill",
course: "Informatik",
email: "jsizland4@hud.gov",
matrikelnummer: 4315,
nachname: "Sizland",
phone: "(859) 3523116",
semester: 2,
vorname: "Méline"
}
],
4556: [
{
adresse: "17143 Monument Junction",
course: "Wirtschaftsinformatik",
email: "tkingsworth3@google.co.uk",
matrikelnummer: 4556,
nachname: "Kingsworth",
phone: "(517) 1329873",
semester: 8,
vorname: "Styrbjörn"
}
]
}
but I should format it to something like this:
[
{
"matrikelnummer": 4250,
"students":[
{
"matrikelnummer":4250,
"vorname":"Gérald",
"nachname":"Bayston",
"adresse":"3 Tony Street",
"course":"Informatik",
"semester":5,
"email":"wbayston3x@cmu.edu",
"phone":"(404) 3665176"
},
{
"matrikelnummer":4250,
"vorname":"Wá",
"nachname":"Chasney",
"adresse":"919 Iowa Place",
"course":"Wirtschaftsinformatik",
"semester":2,
"email":"mchasneydd@nasa.gov",
"phone":"(510) 1079563"
},
{
"matrikelnummer":4250,
"vorname":"Östen",
"nachname":"Heggman",
"adresse":"8 Coleman Drive",
"course":"Medieninformatik",
"semester":1,
"email":"kheggman9j@buzzfeed.com",
"phone":"(381)8246163"
},
{
"matrikelnummer":4250,
"vorname":"Vérane",
"nachname":"Roubert",
"adresse":"463 Lakewood Avenue",
"course":"Medientechnik",
"semester":5,
"email":"aroubert7r@cornell.edu",
"phone":"(625) 8344564"
}
]
}
]
Do you know how can I resolve that issue? Here is my current code:
var students = [{"matrikelnummer":4251,"vorname":"Médiamass","nachname":"Ciccottio","adresse":"900 Mitchell Trail","course":"Medientechnik","semester":5,"email":"mciccottio0@bandcamp.com","phone":"(533) 9776037"},
{"matrikelnummer":4251,"vorname":"Tán","nachname":"Ellingworth","adresse":"7224 Tennessee Hill","course":"Medieninformatik","semester":4,"email":"sellingworth1@home.pl","phone":"(129) 5071723"},
{"matrikelnummer":4251,"vorname":"Gisèle","nachname":"Reape","adresse":"287 Daystar Park","course":"Informatik","semester":12,"email":"sreape2@ning.com","phone":"(189) 8272285"},
{"matrikelnummer":4556,"vorname":"Styrbjörn","nachname":"Kingsworth","adresse":"17143 Monument Junction","course":"Wirtschaftsinformatik","semester":8,"email":"tkingsworth3@google.co.uk","phone":"(517) 1329873"},
{"matrikelnummer":4315,"vorname":"Méline","nachname":"Sizland","adresse":"4910 Rieder Hill","course":"Informatik","semester":2,"email":"jsizland4@hud.gov","phone":"(859) 3523116"}]
const duplicateStudents = (students) => {
const grouping = students.reduce((previous, current) => {
if (previous[current.matrikelnummer]) previous[current.matrikelnummer].push(current);
else previous[current.matrikelnummer] = [current];
return previous;
}, {});
return grouping
};