前段时间 在展示 数据时,遇到这样一个问题 :
后台返回的数据结构:
而 前端展示的时候要处理成这样的:
开始我并没有什么解决方案。
首先 ,我得从这些数据中,按照年份 筛选出来。
用了map 数据结构 :
let map = new Map();
let intro_his = res.data.intro_his; //后台获取的数据
intro_his.forEach((it) => {
if (it.year != null && "" != it.year) {
if (map.has(it.year)) {
map.get(it.year).push(it);
} else {
let arr = new Array();
arr.push(it);
map.set(it.year, arr);
}
}
});
最后返回的map 数据结构 是这样的
但是 跟 预期的数据结构还是有出入
然后我就得再对这个 map 对象进行遍历
for(let key of map) {
let obj = {
year:key[0],
eventlist:key[1].map(function(obj){
return {
event: obj.event,
title: obj.title,
info: obj.info,
}
})
}
最后,完成了预期的数据模板的改造
historylist: [
{
year: "2015",
eventlist: [
{
event: "事件1",
title: "公司注册成立",
info: "组建研发团队",
},
{
event: "事件1",
title: "公司注册成立",
info: "组建研发团队",
},
],
},
]