四维数组遍历(额滴个天啊版)

需要处理的数据:

 const points = [
      { name: '3MERPOWER', data: [[[1643072367000, 600], [1643072382000, 100]]] },
      { name: '4MERPOWER', data: [[[1643072367000, 400], [1643072382000, 500]]] },
      { name: '5MERPOWER', data: [[[1643072367000, 700], [1643072382000, 1000]]] },
      { name: '6MERPOWER', data: [[[1643072367000, 900], [1643072382000, 50]]] },
      { name: '7MERPOWER', data: [[[1643072367000, 100], [1643072382000, 800]]] }
    ]

目标结构:

  let arr = [
    { time:'1643072367000', '3MERPOWER':600,'4MERPOWER':400,'5MERPOWER':700,'6MERPOWER':900},
    { time:'1643072382000','3MERPOWER':100,'4MERPOWER':500,'5MERPOWER':1000,'6MERPOWER':50}
  ]

处理过程:(略心酸)

   const arrName = []
    points.map((item) => {
      arrName.push(item.name)
    })
    const arr = []
    const arrEle = []
    const lastArr = []
    const marr = []
    const larr = []
    points.map((item) => {
      const data = item.data
      for (let i = 0; i < data.length; i++) {
        arrEle.push(data[i])
        for (let k = 0; k < data[i].length; k++) {
          const dataArr = data[i][k]
          for (let j = 0; j < dataArr.length; j++) {
            arr.push(dataArr[0])
          }
        }
      }
    })
    const newArr = this.unique(arr)
    newArr.map((item, index) => {
      const obj = {}
      obj['time'] = item
      for (let j = 0; j < arrEle.length; j++) {
        const info = arrEle[j]
        for (let i = 0; i < info.length; i++) {
          i === 0 ? marr.push(info[i][1]) : larr.push(info[i][1])
        }
      }
      lastArr.push(obj)
    })
    const marrList = this.unique(marr)
    const larrList = this.unique(larr)
    lastArr.map((item, index) => {
      if (index === 0) {
        arrName.map((name, i) => {
          item[name] = marrList[i]
        })
      } else {
        arrName.map((name, i) => {
          item[name] = larrList[i]
        })
      }
    })
    console.log('lastArr', lastArr)
   unique(array) { // 数组去重
      return Array.from(new Set(array))
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值