满足echarts动态数据轮询,

后台返回一个月的总数据,前端实现动态图标加载

因后台返回为全部数据,需要分段展示,实现无缝轮询,

  let cremationList = [
    {
      "cremationDate": "2022-08-01",
      "number": 210
    },
    {
      "cremationDate": "2022-08-02",
      "number": 150
    },
    {
      "cremationDate": "2022-08-03",
      "number": 50
    },
    {
      "cremationDate": "2022-08-04",
      "number": 100
    },
    {
      "cremationDate": "2022-08-05",
      "number": 110
    },
    {
      "cremationDate": "2022-08-06",
      "number": 90
    },
    {
      "cremationDate": "2022-08-07",
      "number": 40
    },
    {
      "cremationDate": "2022-08-08",
      "number": 70
    },
    {
      "cremationDate": "2022-08-09",
      "number": 180
    },
    {
      "cremationDate": "2022-08-10",
      "number": 200
    },
    {
      "cremationDate": "2022-08-11",
      "number": 110
    },
    {
      "cremationDate": "2022-08-12",
      "number": 120
    },

  ]

 需要把上述数据处理为下图效果

实现代码

  let length = 7, arr = []
  let returnArr = []
  Array.prototype.remove = function (from, to) {
    let rest = this.slice((to || from) + 1 || this.length);
    this.length = from < 0 ? this.length + from : from;
    return this.push.apply(this, rest);
  };
  let dataArr = [], timeArr = []; //全部数据
  let cremationNumData = [], cremationDate = []; //截取的数据
  cremationList.forEach(n => {
    let time = n.cremationDate.split('-')
    time.remove(0)
    time = time.join('-')
    timeArr.push(time)
    dataArr.push(n.number)
  })
  let s = 0
  setInterval(() => {
    const t = ++s;
    if (t  === timeArr.length) {
      s = 0
    }
    let arr = getNumberArr(t, timeArr)
    console.log(arr)
  }, 1000)

  function getNumberArr(start = 0, arr) {
    let end = start + length
    if (arr.length < end) {
      returnArr = [...arr.slice(start, arr.length), ...arr.slice(0, end - arr.length)]
    } else {
      returnArr = arr.slice(start, end)
    }
    return returnArr
  }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值