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

在KUSTO中如何获取数组展开后元素索引并计算对应时间

数组展开并计算对应时间戳的实现方案

需求说明

给定一行数据,包含:

  • 一个数组(数组第一个元素对应起始datetime)
  • 一个时间间隔参数(单位:毫秒)

需要将数组展开,为每个元素获取索引,并计算出该元素对应的datetime。

示例实现(Python)

假设输入如下:

  • 数组:[100, 200, 300, 400]
  • 起始时间:2024-05-20 12:00:00.000
  • 时间间隔:500毫秒

代码实现:

from datetime import datetime, timedelta

# 输入参数
data_array = [100, 200, 300, 400]
start_dt = datetime(2024, 5, 20, 12, 0, 0)
interval_ms = 500

# 处理逻辑
expanded_result = []
for index, elem in enumerate(data_array):
    # 计算当前元素对应的时间:起始时间 + 索引 × 时间间隔
    current_dt = start_dt + timedelta(milliseconds=index * interval_ms)
    expanded_result.append({
        "索引": index,
        "数组元素": elem,
        "对应时间": current_dt.strftime("%Y-%m-%d %H:%M:%S.%f")[:-3]
    })

# 打印结果
for item in expanded_result:
    print(f"索引: {item['索引']}, 元素: {item['数组元素']}, 时间: {item['对应时间']}")

执行后输出:

索引: 0, 元素: 100, 时间: 2024-05-20 12:00:00.000
索引: 1, 元素: 200, 时间: 2024-05-20 12:00:00.500
索引: 2, 元素: 300, 时间: 2024-05-20 12:00:01.000
索引: 3, 元素: 400, 时间: 2024-05-20 12:00:01.500

示例实现(JavaScript)

同样的输入,用JavaScript实现:

// 输入参数
const dataArray = [100, 200, 300, 400];
const startDt = new Date('2024-05-20T12:00:00.000');
const intervalMs = 500;

// 处理逻辑
const expandedResult = dataArray.map((elem, index) => {
    const currentDt = new Date(startDt.getTime() + index * intervalMs);
    return {
        索引: index,
        数组元素: elem,
        对应时间: currentDt.toISOString().replace('T', ' ').slice(0, -1)
    };
});

// 打印结果
expandedResult.forEach(item => {
    console.log(`索引: ${item.索引}, 元素: ${item.数组元素}, 时间: ${item.对应时间}`);
});

核心逻辑说明

  • 用enumerate(Python)或map的索引参数(JavaScript)直接获取每个元素的索引
  • 时间计算规则:当前时间 = 起始时间 + 索引 × 时间间隔,因为第一个元素索引为0,对应起始时间,后续元素依次累加间隔
  • 时间格式化时保留三位毫秒,匹配输入的时间间隔单位

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 18:38:18