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")
|
||
})) |