最近工作中遇到一个需求。
1、需求:
1)、获取到后台穿过来的数据,然后让这些数据通过季度分类的方式来显示。数据如下所示。
0: {num: 2, testArry: Array(2), time: "2022-11"}
1: {num: 1, testArry: Array(1), time: "2022-10"}
2: {num: 3, testArry: Array(3), time: "2022-08"}
3: {num: 1, testArry: Array(1), time: "2022-05"}
数据展开后如下图所示。
2)、想要实现的效果是如下图所示。
显示在页面上就是这样的。
点开每一个标签后里面显示testArry这个数组中的内容。
直接上代码来实现这个需求。
2、开发
//data中自定义的测试数据
testList:[
{
num:2,
testArry:[
{address:'北京市'},
{address:'北京市'}
],
time:'2022-11'
},
{
num:1,
testArry:[
{address:'上海市'},
],
time:'2022-10'
},
{
num:3,
testArry:[
{address:'深圳市'},
{address:'深圳市'},
{address:'深圳市'},
],
time:'2022-08'
},
{
num:1,
testArry:[
{address:'广州市'}
],
time:'2022-05'
}
]
//将数据筛选成需求所需要的数据
screenList(){
//获取data中的数据
let list = this.data.testList;
//定义当期季度
let currentQuarter = '';
//月份
let month = '';
//年
let year = '';
//季度的名字
let quarterName = '';
//显示某某年某某季度
let split = '年-第';
let splits = '季度';
//定义一个新的数组存放筛选后新的数组
let quarterList = [];
//对数据进行for循环
list.forEach(item => {
//截取年份
year = item.time.slice(0,4);
//截取月份
month = parseInt(item.time.slice(5,7));
//通过月份判断是第几季度
currentQuarter = this.quarter(month);
//完善季度名
quarterName = year + split + currentQuarter + splits;
//新的对象存放修改后新的数据
let para = {
newList:item.testArry,
quarter:quarterName
}
//把新的数据存放到新的数组中
quarterList.push(para)
})
console.log('currentQuarter',quarterList);
},
//根据月份判断季度的方法
quarter(getMonth){
let currQuarter = Math.floor((getMonth % 3 == 0 ? (getMonth / 3) : (getMonth / 3 + 1)));
return currQuarter
}