Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JS保持日期差1分钟_Javascript_Arrays_Sorting_Ecmascript 6 - Fatal编程技术网

Javascript JS保持日期差1分钟

Javascript JS保持日期差1分钟,javascript,arrays,sorting,ecmascript-6,Javascript,Arrays,Sorting,Ecmascript 6,保持约会时间间隔为1分钟 给定数组 [ "2018-03-01T22:16:50.000Z", "2018-05-07T09:54:21.000Z", "2018-05-07T09:55:10.000Z", "2018-05-07T09:56:09.000Z" ] 在这种情况下,结果应该是 [ "2018-05-07T09:54:21.000Z", "2018-05-07T09:55:10.000Z", "2018-05-07T09:56:09.000Z" ] 如果与下一个日期的差异大于1分

保持约会时间间隔为1分钟

给定数组

[
"2018-03-01T22:16:50.000Z",
"2018-05-07T09:54:21.000Z",
"2018-05-07T09:55:10.000Z",
"2018-05-07T09:56:09.000Z"
]
在这种情况下,结果应该是

[
"2018-05-07T09:54:21.000Z",
"2018-05-07T09:55:10.000Z",
"2018-05-07T09:56:09.000Z"
]

如果与下一个日期的差异大于1分钟,并将其添加到数组中,则在最后一个元素与前一个元素进行比较的情况下,这是错误的

const日期=[
“2018-03-01T22:16:50.000Z”,
“2018-05-07T09:54:21.000Z”,
“2018-05-07T09:55:10.000Z”,
“2018-05-07T09:56:09.000Z”
]
const result=dates.filter((日期,i)=>{
如果(i==dates.length-1){
var日期=新日期(日期)
var prev=新日期(日期[i-1])

如果(((date.getTime()-prev.getTime())/1000)这也适用于数组中的其他值

var arr = [
"2018-03-01T22:16:50.000Z",
"2018-05-07T09:54:21.000Z",
"2018-05-07T09:55:10.000Z",
"2018-05-07T09:57:10.000Z",
"2018-05-07T09:56:09.000Z",
"2018-05-07T10:10:10.000Z",
"2018-05-07T10:11:10.000Z",
"2018-05-07T09:58:10.000Z",
]

arr.sort();

var lastitem = null,
    retArr = [];

arr.forEach(function (item, index) {
    if(lastitem < item){
        var last = new Date(lastitem);
        var newitem = new Date(item);
        var diffMs = (newitem - last); // milliseconds between last & newitem
        var diffMins = Math.round(((diffMs % 86400000) % 3600000) / 60000); // minutes
        if(diffMins === 1 && $.inArray(item, retArr) == -1){
          retArr.push(item);  
        } 
        if(diffMins === 1 && $.inArray(lastitem, retArr) == -1){
          retArr.push(lastitem);  
        } 
    }
  lastitem = item;  

});

console.log(retArr.sort());
var-arr=[
“2018-03-01T22:16:50.000Z”,
“2018-05-07T09:54:21.000Z”,
“2018-05-07T09:55:10.000Z”,
“2018-05-07T09:57:10.000Z”,
“2018-05-07T09:56:09.000Z”,
“2018-05-07T10:10:10.000Z”,
“2018-05-07T10:11:10.000Z”,
“2018-05-07T09:58:10.000Z”,
]
arr.sort();
var lastitem=null,
retArr=[];
arr.forEach(功能(项目、索引){
如果(最后一项<项目){
var last=新日期(lastitem);
var newitem=新日期(项目);
var diffMs=(newitem-last);//last和newitem之间的毫秒
var diffMins=Math.round((diffMs%86400000)%3600000)/60000);//分钟
if(diffMins==1&$.inArray(项目,重新分配)=-1){
重新安装推力(项目);
} 
if(diffMins==1&$.inArray(lastitem,retArr)=-1){
重新推送(最后一项);
} 
}
lastitem=项目;
});
log(retArr.sort());

关于三个项目的边缘案例如何?如果值在2分钟的间隔内,您希望采用哪些项目?请添加您尝试过的内容。@STEEL仅就我所知,如果将其添加到数组中,结果会是什么:“2018-05-07T09:58:09.000Z”?我猜有3项,对吗?谢谢。原始代码实际上是多维对象数组。因此我无法发布我的原始代码。再次感谢。