Javascript 通过匹配元素值旋转数组
我有一个数组Javascript 通过匹配元素值旋转数组,javascript,arrays,Javascript,Arrays,我有一个数组arr=['14:00','15:00','16:00',…] 我想旋转数组,使最接近实际时间的时间元素位于第一位 我在这里找到了一个函数来旋转数组,它使用一个函数 function arrayRotate(arr, count) { count -= arr.length * Math.floor(count / arr.length) arr.push.apply(arr, arr.splice(0, count)) return arr } 但是我不知道如何确定c
arr=['14:00','15:00','16:00',…]
我想旋转数组,使最接近实际时间的时间元素位于第一位
我在这里找到了一个函数来旋转数组,它使用一个函数
function arrayRotate(arr, count) {
count -= arr.length * Math.floor(count / arr.length)
arr.push.apply(arr, arr.splice(0, count))
return arr
}
但是我不知道如何确定count参数,以确保第一个元素最接近实际时间。如果希望将实际时间移到顶部,而将其余元素保留为给定顺序,可以使用
var数组=['14:00','15:00','16:00','17:00'],
实际值='16:00';
array.unshift(array.splice(array.indexOf(实际),1)[0]);
console.log(数组)代码>要获取实际值,可以使用新建日期().getHours()
让arr=[];
对于(var i=0;i
var数组=[“0:00”,“1:00”,“2:00”,“3:00”,“4:00”,“5:00”,“6:00”,“7:00”,“8:00”,“9:00”,“10:00”,“11:00”,“12:00”,“13:00”,“14:00”,“15:00”,“16:00”,“17:00”,“18:00”,“19:00”,“20:00”,“21:00”,“22:00”,“23:00];
实际变量='16:21';
//以hh:mm格式计算两个时间戳之间的差异
功能时差(时间1,时间2){
var t1=time1.split(':'),t2=time2.split(':');
返回Math.abs((t1[0]*60+t1[1])-(t2[0]*60+t2[1]);
}
//循环数组并将第一个元素的每次时间与实际时间进行比较
//直到找到一个时间戳,实际时间与该时间之间的差异
//小于或等于30分钟
函数关闭时间(数组,实际值){
var diff=时差(实际值,数组[0]);
var i=1;
而(i30){
//将第一个元素添加到数组的末尾
var b=array.shift();
阵列推送(b);
diff=时差(实际值,数组[0]);
i+=1;
}
返回数组;
}
console.log(closestTime(array,actual));
你说的“旋转”是什么意思?只是为了把实际时间放在前面?