需要处理的数据:
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))
}