gpt4 book ai didi

javascript - 如何将时间戳数组减少为特定时间范围内元素数量计数的数组

转载 作者:行者123 更新时间:2023-11-28 14:53:06 24 4
gpt4 key购买 nike

我有一个看起来像的数组

[
"2017-05-08T13:42:00.318Z",
"2017-05-08T13:42:05.590Z",
"2017-05-08T13:42:12.377Z",
"2017-05-08T13:42:20.830Z",
"2017-05-08T13:42:22.634Z",
"2017-05-08T13:42:25.249Z"
]

我希望最终得到一个计数数组,其中包含有多少时间戳落入 10 秒时间范围。

因此,对于上面的示例 "2017-05-08T13:42:00.318Z""2017-05-08T13:42:05.590Z" 将落入范围 2017-05-08T13:42:00.000Z2017-05-08T13:42:10.000Z

"2017-05-08T13:42:12.377Z" 将落入 2017-05-08T13:42:10.000Z2017 的范围-05-08T13:42:20.000Z

“2017-05-08T13:42:20.830Z”“2017-05-08T13:42:22.634Z”“2017- 05-08T13:42:25.249Z" 将落入 2017-05-08T13:42:20.000Z2017-05-08T13:42:30.000Z 的范围.

我的目标是获取每个范围内时间戳数量的计数数组。对于上面的示例,结果将是:[2, 1, 3]

注意:我正在使用 Typescript,因此使用 ES6 功能的答案将起作用。

最佳答案

您可以对日期进行切片并与前一个日期进行检查。

          value                  slot           result
------------------------ ------------------ ---------
2017-05-08T13:42:00.318Z 2017-05-08T13:42:0 [1]
2017-05-08T13:42:05.590Z 2017-05-08T13:42:0 [2]
2017-05-08T13:42:12.377Z 2017-05-08T13:42:1 [2, 1]
2017-05-08T13:42:20.830Z 2017-05-08T13:42:2 [2, 1, 1]
2017-05-08T13:42:22.634Z 2017-05-08T13:42:2 [2, 1, 2]
2017-05-08T13:42:25.249Z 2017-05-08T13:42:2 [2, 1, 3]

var data = ["2017-05-08T13:42:00.318Z", "2017-05-08T13:42:05.590Z", "2017-05-08T13:42:12.377Z", "2017-05-08T13:42:20.830Z", "2017-05-08T13:42:22.634Z", "2017-05-08T13:42:25.249Z"],
count = data.reduce(function (r, a, i, aa) {
if (i && aa[i - 1].slice(0, 18) === a.slice(0, 18)) {
r[r.length - 1]++;
} else {
r.push(1);
}
return r;
}, []);

console.log(count)

关于javascript - 如何将时间戳数组减少为特定时间范围内元素数量计数的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43852709/

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