json 数据通过循环分类

json 数据通过循环分类

如何让 时间相差五分钟为一组。第二组以第一组第一个时间为准,求大佬帮忙。


回答:

如果数据已经排序,其实就是一个遍历比较的过程。因为时间信息中有厘秒数,这里没有忽略厘秒,是比较的绝对值差是5分钟。

var sortX = function( inArr ){

var rt=[];

if(inArr.length==0) return rt;

let tmp=[];

tmp.push(inArr[0]);

let sDate=inArr[0]["date"];

for(let i=1;i<inArr.length;i++){

let cObj=inArr[i];

if( (cObj["date"]-sDate)>100*60*5 ){

rt.push(tmp);

tmp=[];

sDate=cObj["date"];

}

tmp.push(cObj);

}

rt.push(tmp);

return rt;

}


回答:

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;

}, [])

以上是 json 数据通过循环分类 的全部内容, 来源链接: utcz.com/p/935448.html

回到顶部