javascript - JS数组格式合并转换
本文介绍了javascript - JS数组格式合并转换的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
有如下数组
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"}
];
要求转换成如下格式:
[
{
mainTitle: "AAA"
subList: [
{
subId:1
subTitle:"A-1"
},
{
subId:2
subTitle:"A-2"
},
{
subId:3
subTitle:"A-3"
}
]
},
{
mainTitle: "BBB"
subList: [
{
subId:4
subTitle:"B-1"
}
]
},
{
mainTitle: "CCC"
subList: [
{
subId:5
subTitle:"C-1"
},
{
subId:6
subTitle:"C-2"
}
]
}
]
求好的转换过程,可以使用es6或lodash提供的方法
解决方案
供参考
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())
这篇关于javascript - JS数组格式合并转换的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文