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;
    }
  • 相关阅读:
    python编码基础知识
    python编码问题
    python中文乱码
    mysql sql灵活运用
    MySQL函数讲解(MySQL函数大全)
    python:UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xef in position xxx: ordinal not in range(128)
    sql replace into 与 insert into
    微信布局
    盘点六大在中国复制失败的O2O案例
    字符串问题(一)
  • 原文地址:https://www.cnblogs.com/ziyoublog/p/14680421.html
Copyright © 2011-2022 走看看