最近开发的项目中后台接口返回的是二维数组,但界面表格的数据格式一维数组,所以接口返回来的数据格式转变为表格的数据格式,使用reduce()来处理。项目使用的是antd的UI框架,表格使用里面表头合并的组件。
界面如图所示:
前端小白记录笔记,以便自己以后记忆,使用。
`
// 后端接口返回数据格式
const list = [
{
id: 1,
grade: ‘初一’,
course: [
{ id:‘A’, name: ‘语文’, amount: 50, start: ‘开课’, time: ‘2023-06-01’ },
{ id:‘B’, name: ‘数学’, amount: 50, start: ‘开课’, time: ‘2023-06-01’ },
{ id:‘C’, name: ‘英语’, amount: 50, start: ‘关闭’, time: ‘2023-06-01’ },
{ id:‘D’, name: ‘物理’, amount: 50, start: ‘开课’, time: ‘2023-06-01’ },
{ id:‘E’, name: ‘化学’, amount: 50, start: ‘开课’, time: ‘2023-06-01’ },
]
}
]
// 界面表格所需要的一维格式
const tableList = [
{
id: 1,
grade: ‘初一’,
Aamount: 50, Astart:‘开课’, Atime:‘2023-06-01’,
Bamount: 50, Bstart:‘开课’, Btime:‘2023-06-01’,
Camount: 50, Cstart:‘关闭’, Ctime:‘2023-06-01’,
Damount: 50, Dstart:‘开课’, Dtime:‘2023-06-01’,
Eamount: 50, Estart:‘开课’, Etime:‘2023-06-01’,
}
]
// 处理数据格式的方法
const newList = list.map(item => {
const newItem = item.course.reduce((total, curr) => {
return {
[${curr.id}amount
]: curr.amount,
[${curr.id}start
]: curr.start,
[${curr.id}time
]: curr.time
}
})
return {
id: item.id,
grade: item.grade,
…newItem
}
})
console.log(newList)`