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