簡體   English   中英

尋找一種簡化此if / else語句的方法。 javascript

[英]looking for a way to simplify this if/else statement. javascript

因此,我有一個函數(我正在使用jQuery ui並在拖動事件上運行此函數,盡管對於這個問題,我認為這並不重要)

基本上,我有以下重復的if else代碼:

我很好奇,如果有在同一行(ISH)寫這個,而不是有一個100的方式else if行,如果我希望能夠支持100步(共滑塊值的部門)。

 var thisPos =  $( ".sliderknob" ).position();

        var x = thisPos.left -  window['sliderhome'].left;

        console.log("(" + x + ")");

        l = Object.keys(obj_frameindex).length;

        framefraction = 290/l;

        if (x>-1 && x<framefraction){
            console.log('frame 1'); 
            frameselector(0); 
            $('#framecounter').html("FRAME " + 1);
        }
        else if (x>framefraction && x<framefraction*2){
            console.log('frame 2'); 
            frameselector(1); 
            $('#framecounter').html("FRAME " + 2);
        }
        else if (x>framefraction*2 && x<framefraction*3){
            console.log('frame 3'); 
            frameselector(2); 
            $('#framecounter').html("FRAME " + 3);
        }
        else if (x>framefraction*3 && x<framefraction*4){
           console.log('frame 4'); 
           frameselector(3); 
           $('#framecounter').html("FRAME " + 4);}    //etc..........

這里只顯示4個,但想象它還在繼續...

有任何想法嗎?

做類似的事情:

if x < 0 { return };
var f = Math.ceil(x / framefraction);
console.log(`frame` + f);
frameselector(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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM