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));
    你说的“旋转”是什么意思?只是为了把实际时间放在前面?