正在寻找简化此if/else语句的方法。javascript
所以,我有一个函数(我正在使用jqueryui并运行这个on-drag事件,不过对于这个问题,我认为这并不重要) 基本上,我有以下重复的正在寻找简化此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
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);