gpt4 book ai didi

javascript - 对时间跨度内的日期进行分组

转载 作者:行者123 更新时间:2023-11-28 17:41:45 24 4
gpt4 key购买 nike

我正在尝试对同一小时内的日期进行分组。然而,某些日期似乎被排除在外。我错过了什么?预期结果为 [[date1, date2], [date3], [date4]]

function groupDates(dates) {
var result = [];
var intervalStart = dates[0];
var grp = []
dates.forEach((d,i) => {
var diff = d.getTime() - intervalStart.getTime()
if(diff/1000/60 <= 60) {
grp.push(d)
} else {
intervalStart = date;
grp = [d]
result.push(grp)
}
})
return result
}

console.log(groupDates([new Date('2017-01-01 17:24'),
new Date('2017-01-01 17:25'),
new Date('2017-01-01 18:26'),
new Date('2017-01-01 19:27')]))

https://jsfiddle.net/ps7m03gv/

最佳答案

问题出在您的 else block 中。您检测到当前组应该结束,但在将其插入 result 数组之前将其丢弃。

result.push(grp) 行移至 else block 的顶部,并添加一个额外的 result.push(grp) 在循环之后处理最后一组。

function groupDates(dates) {
var result = [];
var intervalStart = dates[0];
var grp = [];
dates.forEach((d,i) => {
var diff = d.getTime() - intervalStart.getTime();
if(diff/1000/60 <= 60) {
grp.push(d);
} else {
result.push(grp);
intervalStart = d;
grp = [d];
}
})
result.push(grp);
return result;
}

console.log(groupDates([new Date('2017-01-01 17:24'),
new Date('2017-01-01 17:25'),
new Date('2017-01-01 18:26'),
new Date('2017-01-01 19:27')]));

关于javascript - 对时间跨度内的日期进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47772670/

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