【发布时间】:2017-08-05 08:04:07
【问题描述】:
我调用了一个返回问题列表的服务。然后,我按主题重新组合这个问题。 我有这个转换:
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);
它有效。 但是现在,我想添加一个属性:主题的 id。
{
"themeId": 1,
"theme": "dog",
"questions": [...]
},
{
"themeId": 2,
"theme": "horse",
"questions": [...]
}
如果没有错误代码,我找不到正确的方法。
有什么建议吗? 提前致谢 !
【问题讨论】:
标签: javascript arrays sorting ecmascript-6