如何让 时间相差五分钟为一组。第二组以第一组第一个时间为准,求大佬帮忙。
ps:用代码代替图片
var now = Date.now();
var arr = [
{date: now, time: '现在'},
{date: now+1000*60*4, time: '4分钟后'},
{date: now+1000*60*5, time: '5分钟后'},
{date: now+1000*60*5+1, time: '5分钟1秒后'},
{date: now+1000*60*7, time: '7分钟后'},
{date: now+1000*60*11, time: '11分钟后'},
{date: now+1000*60*19, time: '19分钟后'},
]
arr.reduce((res, v) => {
var len = res.length;
if(len && v.date-res[len-1][0].date<=5*60*1000) res[len-1].push(v);
else (res[len] ||= []).push(v)
return res;
}, [])
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答5.2k 阅读✓ 已解决
2 回答4.8k 阅读✓ 已解决
4 回答4.4k 阅读✓ 已解决
如果数据已经排序,其实就是一个遍历比较的过程。因为时间信息中有厘秒数,这里没有忽略厘秒,是比较的绝对值差是5分钟。