将数组连续的数据组成一个数组,最后组成一个大数组

项目中遇到的,记录一下:
把连续的 (间隔15分钟) 放在一个数组,然后再所有连续的放在一个大数组 例如 [[1:00-3:00] [5:00] [6:00 - 9:15]]
核心思想:如果数组的后一项,比前一项大一,则是放到startArr数组中, 否则,新建一个数组,且第一项为当前项

后端返回的数据

在这里插入图片描述

前端的处理
 getSection(data) {
       let arr = [];
        let startArr = [data[0]];
        for(let i = 1; i < data.length; i++) {
           if(moment(data[i]).valueOf() - moment(data[i-1]).valueOf() == 900000) {
              startArr.push(data[i]);
           } else {
              arr.push(startArr);
              startArr = [data[i]];
           }
        }
        arr.push(startArr);//此时已经是我想要的[[],[],[]]格式了,后续是项目需要
        let section = arr.map((it)=>{
           let start = moment(it[0]).format('HH:mm');
           let end = moment(it[it.length-1]).format('HH:mm');
           return [
              {'xAxis':start}, {'xAxis':end}
           ];
        });
        return section;
  },
section 最后的格式 [[1:00-3:00] [5:00-5:00] [6:00 - 9:15]]在这里插入图片描述

总结:

  • 举一反三: 判断一个数组是否连续 并组成一个数组
  • js 基础夯实才是王道
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值