gpt4 book ai didi

javascript - 按秒对时间戳数组进行分组

转载 作者:行者123 更新时间:2023-11-28 17:22:49 25 4
gpt4 key购买 nike

我的日志数据中有一组时间戳。我正在尝试按秒对这些时间戳进行分组,以便我可以每 1 秒在图表中显示一次。

[
"2018-08-31T12:52:44.357174404+00:00",
"2018-08-31T12:52:44.357133365+00:00",
"2018-08-31T12:52:44.357185085+00:00",
"2018-08-31T12:52:44.357192810+00:00",
"2018-08-31T12:52:40.197139820+00:00",
"2018-08-31T12:52:40.197829400+00:00",
............
...........
.........
"2018-08-31T12:49:21.658622784+00:00",
"2018-08-31T12:49:07.121419856+00:00"
]

有人可以告诉我按分组并显示每秒日志数的最佳方法吗?

感谢任何帮助。

谢谢

最佳答案

嗯,我认为你可以采用上面的方法,我在这里解释一下:

  1. 循环遍历您拥有的时间戳,为每个时间戳创建一个日期并获取第二个日期。

  2. 检查这一秒是否存在于新的时间戳数组中(以秒分隔)

  3. 如果没有找到第二个,那么它会创建一个具有以下结构的新对象:{Second: int, Times: []} 其中 Second 是“id”,Times 是保存该秒所有时间戳的数组.

  4. 如果它在新数组中找到第二个,那么它只是将时间戳推送到对象。

然后,当您需要使用时间戳时,可以在arrOfSeconds中运行循环并获取arrOfSeconds[i].Times

let ts = [
"2018-08-31T12:52:44.357174404+00:00",
"2018-08-31T12:52:44.357133365+00:00",
"2018-08-31T12:52:44.357185085+00:00",
"2018-08-31T12:52:44.357192810+00:00",
"2018-08-31T12:52:40.197139820+00:00",
"2018-08-31T12:52:40.197829400+00:00",
"2018-08-31T12:49:21.658622784+00:00",
"2018-08-31T12:49:07.121419856+00:00"
]
let arrOfSeconds = [];

for (var time of ts){
let second = new Date(time).getSeconds();
let index = arrOfSeconds.findIndex(a => a.Second == second);

if (index == -1){
let obj= {}
obj.Second = second;
obj.Times = [];
obj.Times.push(time);
arrOfSeconds.push(obj);
}else{
arrOfSeconds[index].Times.push(time)
}
}

console.log(arrOfSeconds);

关于javascript - 按秒对时间戳数组进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52116102/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com