Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.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查找时间是否大于或小于数组元素项_Javascript_Jquery_Arrays - Fatal编程技术网

JavaScript查找时间是否大于或小于数组元素项

JavaScript查找时间是否大于或小于数组元素项,javascript,jquery,arrays,Javascript,Jquery,Arrays,很难描述我在这里想要找到什么,尤其是在标题中。最好用代码来解释 var time = [0,4,14,25,90,110]; 随着时间以秒为单位的流逝,它将大于或小于每个数组元素。我想做的是,当点击一个按钮时,它检查哪个元素已经通过,然后选择那个元素 例如,如果时间当前为32,那么它将匹配条目25,并将数组设置为时间[3],即25秒 编辑:我忘了说如果时间倒转,它也应该更新。如果时间倒回,比如说12,那么它应该更新到第二个条目,即4秒如果时间大于给定时间,您可以迭代数组并退出迭代 函数get

很难描述我在这里想要找到什么,尤其是在标题中。最好用代码来解释

var time = [0,4,14,25,90,110];
随着时间以秒为单位的流逝,它将大于或小于每个数组元素。我想做的是,当点击一个按钮时,它检查哪个元素已经通过,然后选择那个元素

例如,如果时间当前为32,那么它将匹配条目25,并将数组设置为时间[3],即25秒


编辑:我忘了说如果时间倒转,它也应该更新。如果时间倒回,比如说12,那么它应该更新到第二个条目,即4秒

如果时间大于给定时间,您可以迭代数组并退出迭代

函数getIndex(数组,值){
var指数=-1;
array.some(函数(a,i){
如果(a>值){
返回true;
}
指数=i;
});
收益指数;
}
var时间=[0,4,14,25,90,110];
log(getIndex(time,32))
var-time=[0,4,14,25,90,110];
无功电流=32;
var指数=-1;
time.forEach(函数(a,i){
如果(a>当前){
收益指数;
}
指数=i;
log(“它不会打印4,5或6=>”+索引)
});

控制台日志(“结果:+索引)反转时间数组并使用find()

let time=[0,4,14,25,90110];
让find=32;
功能findRight(arr、val){
返回arr.indexOf(Array.from(arr.reverse().find(e=>{
返回val>e;
}));
}

log(findRight(time,find))这里,您为所有小于当前值(32)的值创建另一个数组,然后使用Math.max从第二个数组中选择最大值

注意:-在ecma脚本6中,(…)破坏性符号将数组直接转换为值,以便您可以在其上使用Math.max

然后检查数组中该最大值的索引,并将其替换为当前值

let time=[0,4,25,90,120];
let current =32;
let time2=[];
time.foreach(function(a,I){
if(a<current)
{ 
time2[]=a;
}
});
var j=Math.max(...time2);
var index=time.indexOf(j);
if(index!= -1){
time[index]=current;
}
let time=[0,4,25,90120];
让电流=32;
设time2=[];
time.foreach(函数(a,I){

if(输入一些您到目前为止尝试过的代码。为什么匹配25?因为它是小于32的最大数字?以及“将数组设置为时间[3]”是什么意思意思是?因为32已经超过了25,但没有达到下面的数字90。如果您在上面进行检查,那么在我的示例中,该数组被称为“时间”。请添加一个想要更新编辑案例的示例…我忘了说,如果时间倒转,它也应该更新。如果时间倒转到,比如说12,那么它应该更新到第二个条目是4秒。如果时间是12,此代码将打印出1-表示时间[1]这是4秒当你编写
返回索引;
时,它从你定义的内部函数返回;它不会导致循环停止迭代,并且
forEach
忽略返回值。实际上,这段代码工作得很好。但是,我如何解决你提到的问题,David?实际上,这段代码在不考虑
forEach
的功能。此方法没有提前退出,例如
一些
每个
。而且,它看起来像我答案的一部分。我忘了说如果时间倒转,它也应该更新。如果时间倒转回,比如说12,那么它应该更新到第二个条目,即4 seconds@Hasen,请在问题中添加所有必要的信息以及一些用例。这很好,但它会反转数组吗?我确实想要索引,但索引这样做是错误的。有没有不反转的方法?