34 lines
1.0 KiB
JavaScript
34 lines
1.0 KiB
JavaScript
|
|
import moment from "moment";
|
|||
|
|
/**
|
|||
|
|
* 使用滑动窗口获取水文数据批次
|
|||
|
|
* @param {Array} data - 后端返回的数据数组
|
|||
|
|
* @returns {Array} - 返回数组,每个元素包含600个点的数据
|
|||
|
|
*/
|
|||
|
|
export const getAllHydroBatches = (data) => {
|
|||
|
|
if (!Array.isArray(data) || data.length < 600) {
|
|||
|
|
return [];
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
const batches = [];
|
|||
|
|
let startIndex = 0;
|
|||
|
|
|
|||
|
|
// 当剩余数据量大于等于600时继续处理
|
|||
|
|
while (startIndex + 600 <= data.length) {
|
|||
|
|
const slicedData = data.slice(startIndex, startIndex + 600);
|
|||
|
|
batches.push({
|
|||
|
|
rains: slicedData.map(item => item.rains),
|
|||
|
|
waters: slicedData.map(item => item.waters),
|
|||
|
|
lastTm: slicedData[599].tm // 记录第600个点的时间
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
// 每次向后移动1个位置
|
|||
|
|
startIndex += 1;
|
|||
|
|
}
|
|||
|
|
return batches;
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
export const responseData = new Array(800).fill(0).map((item,index) => ({
|
|||
|
|
rains: (Math.random() * 1).toFixed(2),
|
|||
|
|
waters: (Math.random() * 100).toFixed(2),
|
|||
|
|
tm:moment().clone().add(index, 'hours').format("YYYY-MM-DD HH:00:00")
|
|||
|
|
}))
|