换位置代码
let newArray2 = tArr[0].map(function (col, i) {
return tArr.map(function (row) {
return row[i];
});
});
有兴趣的可以往下看
前言
需求:按时间显示当前模组,测压点1…16的折线. 后台返回的数据是每个时间所有模组,所有测压点的数据。看图1表格
图1
最终需要换成图2表格形式;
图2
换完位置是图3格式,没有分模组。
图3
数据处理
//处理返回数据 chartsData从后台返回的数据,totalData为空数组,xData为其他数据,与此无关;
modeChartsData(chartsData, totalData, xData) {
let tArr = [];
let tempArr = [];
// 返回的数据et.cell_v就是上面图1 每个time的所有数据,将所有time的数据都放在一个数组里面,这就是一个二维数组,[[time1所有数据],[time2所有数据],[time3所有数据]...];
chartsData.forEach((et, idx) => {
tArr.push(et.cell_v);
xData.push(getLocalTime(et.updateTime));
});
console.log(tArr);
// 换位置 图1的数据格式需要换成图2 的数据格式,在这里先换位置,再进行数组切分,因为换完位置是图3的格式,没有分模组1,2,3,4
let newArray2 = tArr[0].map(function (col, i) {
return tArr.map(function (row) {
return row[i];
});
});
// 分模组切割
tempArr = groupData(newArray2, 16);
console.log(tempArr);
},
// 分模组切割数组,
export const groupData=(array, aLength)=> {
let idx= 0;
let newArray = [];
while(idx < array.length) {
newArray.push(array.slice(idx, idx+= aLength));
}
return newArray;
}
后续…
每次显示一个模组的所有测压点的时间折线。同时显示16条折线。