TS+Vue根据不同id从一大堆数据中匹配跟id相同的数据

allres是所有父数据,单个且拥有唯一id

data是根据所有父数据唯一id查到的所有跟它们有关的数据的数组集合,跟据id分类,但是查到的数据是揉在一块的

需要遍历allres父数据,在父数据里遍历data集合,根据父数据的唯一id去和data集合中的flowmeterid做匹配,把data集合中flowmeterid和父数据id相同的数据都提出来分成一组一组的然后操作数据

1.根据所有id吊接口查到跟id有关的所有数据

 let ids = []
    flowmeters.forEach((item) => {
      ids.push(item.id)
    })
    let allres = await GetMeasureliveDataByFlowmeterIds(ids)

2.然后使用allres这个数组去遍历,找出符合条件的数据带入新数组

   let data = []
    allres.forEach((item) => {
      if (item.paramCode == 'FI' || item.paramCode == 'FQ' || item.paramCode == 'TI' || item.paramCode == 'DI' || item.paramCode == 'LIVEZERO') {
        data.push(item)
      }
    })

3.进行数据匹配操作

 for (let index = 0; index < flowmeters.length; index++) {
        const element = flowmeters[index]

        itemRes = []
        data.forEach((item2) => {
          if (element.id == item2.flowmeterId) {
            itemRes.push(item2)
          }
        })
        //每一个流量计的数据的数组
        //每一个itemRes里都是跟A数组id对应的B数组数据的集合
        console.log(itemRes, 'itemRes')


        //找到需要的对象,赋值
        instantaneousFlowObj = itemRes.find((innerItem) => innerItem.paramCode == 'FI')
        cumulativeObj = itemRes.find((innerItem) => innerItem.paramCode == 'FQ')
        temperatureObj = itemRes.find((innerItem) => innerItem.paramCode == 'TI')
        densityObj = itemRes.find((innerItem) => innerItem.paramCode == 'DI')
        activeZeroPointObj = itemRes.find((innerItem) => innerItem.paramCode == 'LIVEZERO')
        // 质量流量 FI
        instantaneousFlow = instantaneousFlowObj ? instantaneousFlowObj.value + instantaneousFlowObj.unit : ''
        // 质量累计量 FQ
        cumulative = cumulativeObj ? cumulativeObj.value + cumulativeObj.unit : ''
        //  温度 TI
        temperature = temperatureObj ? temperatureObj.value + temperatureObj.unit : ''
        // 密度 DI
        density = densityObj ? densityObj.value + densityObj.unit : ''
        // 活零值 LIVEZERO
        activeZeroPoint = activeZeroPointObj ? activeZeroPointObj.value + activeZeroPointObj.unit : ''

     
        
      }

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值