记一个处理复杂数组的方法

131 阅读1分钟

后台获取的数据如下,是一个时间段内的所有数据

由于需求是让这些数据能够可视化,显示每一天变化情况,那么就需要将每一个的值都加到一起

解析过程

let resultData = []
let resultDataId = []
for (let i in result) {
    for(let j in result[i].usedAppliances){
        if(resultDataId.indexOf(result[i].usedAppliances[j].kindId) == -1){
            resultData.push(result[i].usedAppliances[j])
            resultDataId.push(result[i].usedAppliances[j].kindId)
        }else{
            let index = resultDataId.indexOf(result[i].usedAppliances[j].kindId)
            for(let z in resultData[index].data){
                resultData[index].data[z].price += ',' + result[i].usedAppliances[j].data[z].price
            }
        }
    }
}  

方法说明

  • 新建两个数组

resultData存放具体数据

resultDataId存放kindId

  • 循环数组

先判断数据的kindId是否已经存到resultDataId

若不存在:将数据及kindId分别存入resultData、resultDataId

若存在:将字段值添加到相应位置

解析完成

完成啦,将几天内的price的值都添加到了一起