Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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
正在寻找简化此if/else语句的方法。javascript_Javascript_Loops_If Statement - Fatal编程技术网

正在寻找简化此if/else语句的方法。javascript

正在寻找简化此if/else语句的方法。javascript,javascript,loops,if-statement,Javascript,Loops,If Statement,所以,我有一个函数(我正在使用jqueryui并运行这个on-drag事件,不过对于这个问题,我认为这并不重要) 基本上,我有以下重复的if-elsecode: 我很好奇,是否有一种方法可以在一行(ish)中写入,而没有100行,或者如果我想支持100个步骤(总滑块值的分段),那么if行 var thisPos=$(“.sliderknob”).position(); var x=thisPos.left-窗口['sliderhome']左侧; 控制台日志(“+x+”); l=Object.ke

所以,我有一个函数(我正在使用jqueryui并运行这个on-drag事件,不过对于这个问题,我认为这并不重要)

基本上,我有以下重复的
if-else
code:

我很好奇,是否有一种方法可以在一行(ish)中写入,而没有100行
,或者如果我想支持100个步骤(总滑块值的分段),那么if

var thisPos=$(“.sliderknob”).position();
var x=thisPos.left-窗口['sliderhome']左侧;
控制台日志(“+x+”);
l=Object.keys(obj_frameindex).length;
骨架分数=290/l;
如果(x>-1&&xframeframefrance&&xframeframeframefrance*2&&xframeframeframefrance*3&&x执行以下操作:

if x < 0 { return };
var f = Math.ceil(x / framefraction);
console.log(`frame` + f);
frameselector(f - 1);
$(`#framecounter`).html("FRAME " + f);
如果x<0{return};
var f=数学单元(x/帧分数);
console.log(`frame`+f);
帧选择器(f-1);
$(`framecounter`)html(“FRAME”+f);
一种可能的方法:

var frameNo = Math.max(0, Math.floor(x / framefraction)) + 1;
console.log('frame ' + frameNo);
frameselector(frameNo - 1);
$('#framecounter').html('FRAME ' + frameNo);

如果你在
else if
语句中详细说明这些关系,可能会更容易。在这个过程中,你可能会找到问题的答案。如果
x==frameframefraction
x==frameframefraction*2
会发生什么?你真的认为
x
会变成负值吗(或者应该是
x>=0
?)?这很有效。我不能说我真的理解math.max函数的工作原理。
var frameNo = Math.max(0, Math.floor(x / framefraction)) + 1;
console.log('frame ' + frameNo);
frameselector(frameNo - 1);
$('#framecounter').html('FRAME ' + frameNo);