动态数组归类

最近工作中遇到一个需求。
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
  }	
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值