let test = res.row;//接口拿到的初始数据
//先将数组转换成目标格式,即,数据对象为 { id: el.id, txtArr: [] }
var testOld = [];
test.forEach(el => {
var oldObj = {
groupTime: el.groupTime,
txtArr: [] ,
}
var txtObj = {
fdeviceName: el.fdeviceName,
recordId: el.frecordId,
groupTime:el.groupTime,
ruleStrs:el.ruleStrs,
staffId:el.staffId,
staffName:el.staffName,
triggerAddr:el.triggerAddr,
triggerTime:el.triggerTime
};
oldObj.txtArr.push(txtObj);
testOld.push(oldObj);
});
//合并相同的项,生成新的数组
var newData = []; // 目标数组
var newObj = {};
testOld.forEach((el, i) => {
if (!newObj[el.groupTime]) {
newData.push(el);
newObj[el.groupTime] = true;
} else {
newData.forEach(el => {
if (el.groupTime === testOld[i].groupTime) {
el.txtArr = el.txtArr.concat(testOld[i].txtArr);
}
})
}
});
console.log(newData);//最终数据
数据.png