zoukankan      html  css  js  c++  java
  • 解决后端返回数据时间缺失的问题

    实际情景

    本地数据离线,导致后端返回的数据出现数据缺失的情况,但是在页面中使用echarts绘图时却需要进行绘制。因此需要前端对缺失的数据进行补充,缺失的数据暂时赋值为0。

    封装的工具

    handleHiatus(data: any[]) {
        if (data.length === 0) {
            return data;
        }
        // 获取传递给后台的时间范围,方便后期判断
        let start = new Date(this.timeConfig.startDay).getTime();
        let end = new Date(this.timeConfig.endDay).getTime();
        let i = 0; // 当前数据的下标,方便后期插入数据
        // 将当前数据下的所有键值遍历一遍赋值为0,存放对象默认值
        let obj: any = {};
        for (let key in data[i]) {
            obj[key] = 0;
        }
        while (start <= end) {
            data[i].sjsj = data[i].sjsj.split(' ')[0];
            // 根据当前时间和数据时间对比,判断是否有缺失
            let isHiatus = new Date(data[i].sjsj).getTime() !== start;
            let startTime = new Date(start);
            if (isHiatus) {
                // 克隆obj,防止出现引用值被改变
                let newObj = deepClone(obj);
                // 时间需要重新赋值
                newObj.sjsj = formatDate(startTime, 'yyyy-MM-dd');
                // 在当前的位置插入缺失的数据
                data.splice(i, 0, newObj);
            }
            // 对开始的日期进行加一
            startTime.setTime(start + 24 * 60 * 60 * 1000);
            start = startTime.getTime();
            i++;
        }
        return data;
    }
  • 相关阅读:
    Docker 安装各种环境
    N级树形菜单封装
    一个周期算出所有高电平的个数
    DDR3新版(3):DDR3自动读写控制器
    DDR3_新版(2):IP核再封装
    数电(6):时序逻辑电路
    Vue表单那些事
    liunx环境修改minio默认端口和后台启动
    liunx 后台启动mongodb服务
    liunx安装和部署nacos配置中心
  • 原文地址:https://www.cnblogs.com/ziyoublog/p/14680421.html
Copyright © 2011-2022 走看看