regionList: [
{
detailList: [
{
subjectName: "数学",
times: 2,
},
{
subjectName: "语文",
times: 1,
},
],
regionName: "雁塔", //区域
},
{
detailList: [
{
subjectName: "语文",
times: 8,
},
{
subjectName: "数学",
times: 9,
},
],
regionName: "长安", //区域
},
],
如何把上面这种数据类型转换成下面这种的
[{
area: '雁塔',
language: 1,//语文
mathematics: 2,//数学
},
{
area: '长安',
mathematics: 9,//数学
language: 8,//语文
}]
data = [
{
detailList: [
{
subjectName: "语文",
times: 1,
},
{
subjectName: "数学",
times: 2,
},
],
regionName: "雁塔", //区域
},
{
detailList: [
{
subjectName: "语文",
times: 8,
},
{
subjectName: "数学",
times: 9,
},
],
regionName: "长安", //区域
},
]
function changeData(baseDir, data) {
return data.map(item => ({
area: item.regionName,
...Object.keys(baseDir).reduce((t, i) => {
t[i] = item.detailList.find(i2 => i2.subjectName === baseDir[i]).times
return t
}, {})
}));
}
console.log(changeData({
language: '语文',
mathematics: '数学'
}, data))
这篇博文的方法,对你的数据转化应该有帮助:js 数据类型转换 常见转化,链接:https://blog.csdn.net/H291850336/article/details/109306437
这是JS对象转化啊!
你直接遍历,按要求变更就行了
遍历json,再重新按照要求生成新json
1楼这个可以,跟我的差不多,我就不写了