You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

时间区间特定数据展示逻辑异常排查及修正请求

时间区间数据展示逻辑修正问题

需求与预期输出

需求为按时间区间展示对应特定数据,预期输出如下:

12:00:00 - 13:00:00 -> should display 1 (In the log, timestamp 12:00:00 has data as "1", All lines from 12:00:00 until 13:00:00 should display 1. But has to change at 13:00:00, as timestamp 13:00:00 has new data which is "5")
13:00:00 - 14:00:00 -> should display 5 (13:00:00 line has data as 5)
14:00:00 - 15:00:00 -> should display 7 (14:00:00 line has data as 7)

当前代码与异常情况

当前使用的判断逻辑:

eachTBData.TimeStamp >= this.x

实际输出异常:

Correct data is not shown (Maps and displays in the previous set instead)
 12:00:00 - 13:00:00  -> this set displays 5 (has to display 1)
 13:00:00 - 14:00:00 -> this set displays 7 (has to display 5)

尝试将代码修改为eachTBData.TimeStamp <= this.x后,所有时间区间均显示初始数据“1”,问题仍未解决。

修正逻辑方案

核心问题是需要为每个时间区间匹配对应起始时间点的最新数据,具体实现步骤:

  1. 先确保所有带时间戳的数据按时间升序排列(未排序需先做排序处理)
  2. 对于每个时间区间[intervalStart, intervalEnd),找到满足eachTBData.TimeStamp <= intervalStart的所有数据中,时间戳最大的那一条

基础遍历实现(伪代码)

// 假设dataList已按TimeStamp升序排序
function getDisplayData(intervalStart, dataList) {
    let targetData = dataList[0];
    for (let data of dataList) {
        if (data.TimeStamp <= intervalStart) {
            targetData = data; // 更新为符合条件的最新数据
        } else {
            break; // 已排序,后续时间戳更大,无需继续遍历
        }
    }
    return targetData.value;
}

二分查找实现(数据量大时更高效)

function findLatestData(intervalStart, dataList) {
    let left = 0;
    let right = dataList.length - 1;
    let result = dataList[0];
    while (left <= right) {
        const mid = Math.floor((left + right) / 2);
        if (dataList[mid].TimeStamp <= intervalStart) {
            result = dataList[mid];
            left = mid + 1; // 尝试找更晚的符合条件的时间戳
        } else {
            right = mid - 1;
        }
    }
    return result.value;
}

通过以上逻辑,每个区间就能正确匹配对应数据:

  • 12:00:00-13:00:00 取12:00:00的数据(1)
  • 13:00:00-14:00:00 取13:00:00的数据(5)
  • 14:00:00-15:00:00 取14:00:00的数据(7)

内容的提问来源于stack exchange,提问作者st27

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 07:22:32