将数组里面的数据,按照相同月份的分为一组 按年月分组

博客提及初始返回数据,期望将体育项目数据按年月分组,判断年月相同则放进同一个数组,不同则新建数组,给出了2015年5月的羽毛球、篮球和2016年5月的乒乓球、排球、网球等示例数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

初始返回数据:

trainDetails=[{
    "id": 1,
     'active':'羽毛球',
    "startDate": "2015-05-11"
}, {
    "id": 2,
     'active':'篮球',
    "startDate": "2015-05-10"
}, {
    "id": 3,
    'active':'乒乓球',
    "startDate": "2016-05-09"
}, {
    "id": 4,
    'active':'排球',
    "startDate": "2016-05-08"
}, {
    "id": 5,
    'active':'网球',
    "startDate": "2016-05-07"
}]

期望效果:

2015年5月:

     羽毛球

     篮球

2016年5月:

     乒乓球

      排球   

      网球

判断年月相同则放进同一个数组,不相同则新建一个数组

handleData(){
          let newArr = []
          let n = 0
          let yearMonths = ''
          let first = this.trainDetails[0].startDate.split('-') 
          yearMonths =  first[0]+'年' + first[1] + '月'
          newArr[n] =[this.trainDetails[0]]
          newArr[n]. yearMonths  = yearMonths    // 先将第一组数据放进数组,然后判断后一组数据与前一组数据,年月是否相同,相同就放进该组数组,不相同则新建一个数组
          for(let i=1;i<this.trainDetails.length;i++){
            let current = this.trainDetails[i].startDate.split('-')
            let before = this.trainDetails[i-1].startDate.split('-')
            yearMonths =  current[0]+'年' + current[1] + '月'
            if(current[0]=== before[0] && current[1]=== before[1]){
              newArr[n].push(this.trainDetails[i])
            }else{
              n++
              newArr[n] =[]
              newArr[n]. yearMonths  = yearMonths
              newArr[n].push(this.trainDetails[i])
            }
          }
        }

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值