处理数据方法

getChartData() {
    
    
  let myDate = new Date();
  let year = myDate.getFullYear();
  let month = myDate.getMonth();
  month = month < 10 ? "0" + month : month;
  let years = year + "-" + month;
  let params = {
    
     years: "2021-04", communityId: "1371335100698337281" };
  this.$http
    .request("deliveryStatisticalDay", params)
    .then((data) => {
    
    
      console.log(data);
      let chartData = data.data;
      let obj = {
    
    };
      let dat = chartData;
      for (let i = 0; i < chartData.length; i++) {
    
    
        if (!obj[chartData[i].years]) {
    
    
          obj[chartData[i].years] = {
    
    
            day: chartData[i].years.split("-")[2],
            tarshg: "",
            trashs: "",
            trashk: "",
          };
        }
      }
      console.log(obj);
      this.getDat(obj, dat);
    })
    .catch((err) => {
    
    });
},
//一上来就获取本月数据
getDat(obj, dat) {
    
    
  // console.log(obj,dat);
  for (let i = 0; i < dat.length; i++) {
    
    
    if (obj[dat[i].years] && dat[i].trashName == "干垃圾") {
    
    
      obj[dat[i].years].tarshg = dat[i].weight;
    } else if (obj[dat[i].years] && dat[i].trashName == "湿垃圾") {
    
    
      obj[dat[i].years].trashs = dat[i].weight;
    } else if (obj[dat[i].years] && dat[i].trashName == "可回收垃圾") {
    
    
      obj[dat[i].years].trashk = dat[i].weight;
    } else {
    
    
      obj[dat[i].years].tarshg = "0";
      obj[dat[i].years].trashs = "0";
      obj[dat[i].years].trashk = "0";
    }
  }
  // console.log(obj);
  let arr = [];
  for (let i in obj) {
    
    
    arr.push(obj[i]);
  }
  let nowd = new Date();
  let tYear = nowd.getFullYear();
  let tMonth = nowd.getMonth()+1;
  let mydays = new Date(tYear, tMonth, 0).getDate();
  // console.log(arr);
//这里是获取新的处理数据的方法
//每月缺失的天数自动补齐,数据都为0
  let arrd = [];
  for (let i = 1; i <= mydays; i++) {
    
    
    let dayNum = i < 10 ? "0" + i : String(i);
    arrd[i - 1] = {
    
    
      day: dayNum,
      tarshg: "0",
      trashs: "0",
      trashk: "0",
    };
    for (let j in arr) {
    
    
      if (arr[j].day == dayNum) {
    
    
        arrd[i - 1] = arr[j];
      }
    }
  }
//数据处理结束
  let arr1 = [];
  let arr2 = [];
  let arr3 = [];
  let arr4 = [];
  for (let i = 0; i < arrd.length; i++) {
    
    
    arr1.push(arrd[i].day);
    arr2.push(arrd[i].tarshg);
    arr3.push(arrd[i].trashs);
    arr4.push(arrd[i].trashk);
  }
  this.chartOptions.xAxis.categories = arr1;
  this.chartOptions.series[0].data = arr2.map(Number);
  this.chartOptions.series[1].data = arr3.map(Number);
  this.chartOptions.series[2].data = arr4.map(Number);
},

这样的数据:0-31,把没有的日期补齐
在这里插入图片描述
核心代码:

  let arrd = [];
  for (let i = 1; i <= mydays; i++) {
    
    
    let dayNum = i < 10 ? "0" + i : String(i);
    arrd[i - 1] = {
    
    
      day: dayNum,
      tarshg: "0",
      trashs: "0",
      trashk: "0",
    };
    for (let j in arr) {
    
    
      if (arr[j].day == dayNum) {
    
    
        arrd[i - 1] = arr[j];
      }
    }
  }

操作后数据:
在这里插入图片描述

Supongo que te gusta

Origin blog.csdn.net/QZ9420/article/details/116091807
Recomendado
Clasificación