Ich rufe einen Dienst, der eine Liste von Fragen zurückgibt. Dann gruppiere ich diese Frage nach Themen neu. ich habe diese Umwandlung:Konvertieren Array von Objekten (Art von groupby)
var questions = [
{
id: 1,
label: 'lorem ispum ?',
theme: {
id: 1,
label: 'dog',
}
},
{
id: 2,
label: 'lorem ispum2 ?',
theme: {
id: 2,
label: 'horse',
}
},
{
id: 3,
label: 'lorem ispum3 ?',
theme: {
id: 1,
label: 'dog',
}
},
];
var groupByTheme = questions.reduce(function(obj,item){
obj[item.theme.label] = obj[item.theme.label] || [];
obj[item.theme.label].push(item);
return obj;
}, {});
/*var result = Object.keys(groupsByTheme).map(function(key){
return {theme: key, questions: groupsByTheme[key]};
});
*/
var result = Object.entries(groupByTheme).map(([theme, questions]) => ({ theme, questions }));
console.log(result);
Es funktioniert. Aber jetzt möchte ich eine Eigenschaft hinzufügen: die ID des Themas.
{
"themeId": 1,
"theme": "dog",
"questions": [...]
},
{
"themeId": 2,
"theme": "horse",
"questions": [...]
}
Ich finde nicht den richtigen Weg ohne einen Missy Code.
Irgendwelche Vorschläge? Vielen Dank im Voraus!
oh ja, ich fühle mich wie dumm :) Zu lang konzentrierte sich auf das gleiche Problem ^^ –