zoukankan      html  css  js  c++  java
  • 两个数组通过相同项,匹配得到新数组对象

    之前博文中写过通过相同项匹配的,这里不赘述

    项目需求:统计各个APP从当前周往前推5周,也就是最近六周的点击量,因为后台返回的数据中,有些周是不存在的,虽然已跟后台说没有点击量的要为0,但是为了稳妥起见,还是需要前端进行数据处理,毕竟最可靠的还是自己,来,看下后台返回的数据格式:

    这就是后台返回的数据,其中缺少了部分周的数据,因为我这里使用了vue,而且数据是绑定到echarts上的,所以我需要的最后的数据只有周数和点击量

    1.先获取最近六周的周数列表:

     1 setWeek () {
     2    let d1 = new Date()
     3    let d2 = new Date()
     4    d2.setMonth(0)
     5    d2.setDate(1)
     6    let rq = d1-d2
     7    let s1 = Math.ceil(rq/(24*60*60*1000))
     8    let sWeek = Math.ceil(s1/7)
     9    let week = []
    10    if (sWeek >= 6) {
    11         for (let i=0; i < 6; i++) {
    12               week.push((sWeek - i))
    13         }
    14    }
    15    return week.reverse()
    16 },

    在mounted中保存:

    1 this.weekList = this.setWeek()

    OK,这是周数列表:

    2.对数据进行处理:

     1 let dataB = data //另存返回的数据
     2 let nameList = [] //名称列表,在这里其实就是周数的列表,因为我数据绑定到echarts,所以需要对应的横坐标
     3 let seriesList = [] //数据列表
     4 for (let i=0; i<dataB.length; i++) {
     5     let nullSeries = {} 7     let oneData = dataB[i].data.map((item) => {return item.tWeek}) //把里层的data的周拿出来
     8     let nullData = [] //定义空的data来保存当前数据
     9     for (let j=0; j<self.weekList.length; j++) { //以之前获取的weekList为标准
    10         if (oneData.indexOf(self.weekList[j]) > -1) { //如果里层data周数存在的话
    11             let obj = {}
    12             obj = dataB[i].data.find((item) => { //匹配得到当前周数的数据
    13               return item.tWeek == self.weekList[j]
    14             })
    15             nullData.push(obj.tNum) //将点击量存入空的data中
    16         } else {
    17             nullData.push('0') //如果不存在这周,我就让他的点击量为0
    18         }
    19     }
    20     nullSeries.name = dataB[i].name //APP的名字
    21     nullSeries.type = 'line'
    22     nullSeries.smooth = true
    23     nullSeries.data = nullData
    24     seriesList.push(nullSeries) //保存本条数据
    25     nameList.push(dataB[i].name)
    26 }

    OK,这是处理完以后的数据:

     希望本文对你有所帮助!

  • 相关阅读:
    头插法链表的基本操作:创建空链表,插入结点,遍历链表,求链表长度,查找结点,删除结点
    尾插法链表拆分
    头插法链表拆分
    尾插法创建链表
    头插法创建链表
    二维数组45度反斜线扫描分析。
    [LeetCode] Binary Search Tree Iterator | 二叉查找树迭代器
    只用递归翻转栈
    [LeetCode] Wiggle Sort II | 摆动排序
    今天回归刷题的日子
  • 原文地址:https://www.cnblogs.com/wangqiao170/p/9294448.html
Copyright © 2011-2022 走看看