有如下数组var sourceList = [ {SupportProgramId: 1, Category: "AAA", SubCategory: "A-1"}, {SupportProgramId: 2, Category: "AAA", SubCategory: "A-2"}, {SupportProgramId: 3, Category: "AAA", SubCategory: "A-3"}, {SupportProgramId: 4, Category: "BBB", SubCategory: "B-1"}, {SupportProgramId: 5, Category: "CCC", SubCategory: "C-1"}, {SupportProgramId: 6, Category: "CCC", SubCategory: "C-2"}];要求转换成如下格式:求好的转换过程,可以使用es6或lodash提供的方法
1 回答

浮云间
TA贡献1829条经验 获得超4个赞
供参考
var data = Array.from(sourceList.reduce((map, {
SupportProgramId: subId, Category: mainTitle, SubCategory: subTitle
}) => {
if (map.has(mainTitle)) {
map.get(mainTitle).subList.push({subId, subTitle})
} else {
map.set(mainTitle, {mainTitle, subList: [{subId, subTitle}]})
}
return map
}, new Map()).entries())
添加回答
举报
0/150
提交
取消