数据源:
let arr1 = [
[
{pmax: 3.34, pmaxTime: "2021-08-30 20:14:32", deviceID: 900, dbtime: "2021-08"},
{pmax: 5.84, pmaxTime: "2021-08-30 20:33:21", deviceID: 901, dbtime: "2021-08"},
{pmax: 15.91, pmaxTime: "2021-08-25 23:49:40", deviceID: 903, dbtime: "2021-08"}
],
[
{pmax: 3.46, pmaxTime: "2021-09-05 21:16:43", deviceID: 900, dbtime: "2021-09"},
{pmax: 6.09, pmaxTime: "2021-09-05 21:16:43", deviceID: 901, dbtime: "2021-09"},
{pmax: 16.15, pmaxTime: "2021-09-09 01:34:03", deviceID: 903, dbtime: "2021-09"}
]
]
目标数据:
let arr1 = [
{
deviceID: 900,pmax0: 3.34, pmaxTime0: "2021-08-30 20:14:32",pmax1: 3.46, pmaxTime1: "2021-09-05 21:16:43"
},
{
deviceID: 901,pmax0: 5.84, pmaxTime0: "2021-08-30 20:33:21",pmax1: 6.09, pmaxTime1: "2021-09-05 21:16:43"
},
{
deviceID: 903,pmax0: 15.91, pmaxTime0: "2021-08-25 23:49:40",pmax1: 16.15, pmaxTime1: "2021-09-09 01:34:03"
}
]
实现过程:
let arrAll = []; //数组转换为一维数组
let ids = {}; //存储id并储存相同id的数组
let result = [];
arrAll = arr1.flat();
// console.log(arrAll)
arrAll.forEach(item => {
if (ids[item.deviceID]) {
ids[item.deviceID].push(item)
} else {
ids[item.deviceID] = [item]
}
})
console.log(ids)
let keys = Object.keys(ids);
for (let i = 0; i < keys.length; i++) {
let item = ids[keys[i]];
let obj = {
deviceID: keys[i]
}
for (let j = 0; j < item.length; j++) {
obj[`pmax${j}`] = item[j].pmax
obj[`pmaxTime${j}`] = item[j].pmaxTime
obj[`dbtime${j}`] = item[j].dbtime
}
result.push(obj)
}
console.log(result)