Javascript 执行与if-else语句相同的for循环?

Javascript 执行与if-else语句相同的for循环?,javascript,Javascript,我有一个if-else语句,我想知道是否可以将它更改为for循环或类似的东西 if (lastScroll >= 0 && lastScroll < 40) { pos = 0; } else if (lastScroll >= 40 && lastScroll < 80) { pos = 1; } else if (lastScroll >= 80 && lastScroll < 120) {

我有一个if-else语句,我想知道是否可以将它更改为for循环或类似的东西

if (lastScroll >= 0 && lastScroll < 40) {
    pos = 0;
} else if (lastScroll >= 40 && lastScroll < 80) {
    pos = 1;
} else if (lastScroll >= 80 && lastScroll < 120) {
    pos = 2;
} else if (lastScroll >= 120 && lastScroll < 160) {
    pos = 3;
} else if (lastScroll >= 160 && lastScroll < 200) {
    pos = 4;
} else if (lastScroll > 200) {
    pos = 5;
}
if(lastcoll>=0&&lastcoll<40){
pos=0;
}否则如果(lastScroll>=40&&lastScroll<80){
pos=1;
}否则如果(lastScroll>=80&&lastScroll<120){
pos=2;
}否则如果(lastScroll>=120&&lastScroll<160){
pos=3;
}否则如果(lastScroll>=160&&lastScroll<200){
pos=4;
}否则如果(最后滚动>200){
pos=5;
}
我想改变这一点,因为可能有超过100个职位。我在考虑创建一个for循环,如下所示:

var i = 0;
greater = 0;
less = 40;
for (i = 0; i < 100; i++) {
    if (lastScroll >= greater && lastScroll < less) {
        pos = i;
        greater += 40;
        less += 40;
    }

}
var i=0;
大于等于0;
小于等于40;
对于(i=0;i<100;i++){
如果(lastScroll>=更大&&lastScroll<更小){
pos=i;
更大+=40;
小于等于40;
}
}

if-else语句工作得很好,但我不想创建100条if-else语句。这被包装在一个滚动函数中。

因为它是线性的,所以可以使用除法和舍入

pos = Math.floor(lastScroll / 40);
if (pos > 5) pos = 5;

因为它是线性的,所以可以使用除法和舍入法

pos = Math.floor(lastScroll / 40);
if (pos > 5) pos = 5;

如果你想的话,你可以把所有的东西都扔掉,然后使用它

pos = int(lastscroll / 40);

如果你想的话,你可以把所有的东西都扔掉,然后使用它

pos = int(lastscroll / 40);

你不需要一个循环。您可以执行以下操作:

if( lastScroll > 200 ) {
    pos = 5;
} else if ( lastScroll >= 0 ) {
    pos = Math.floor( lastScroll / 40 );
}

你不需要一个循环。您可以执行以下操作:

if( lastScroll > 200 ) {
    pos = 5;
} else if ( lastScroll >= 0 ) {
    pos = Math.floor( lastScroll / 40 );
}

@fuyushimoya不,这就是OP所说的变量,看看这些值,很好,明白了。无论如何,它应该放一个
断点
pos=i
之后,和
更大/更小+=40
应该从if语句中移出。@fuyushimoya不,这只是OP所称的变量,看看这些值,很好,明白了。无论如何,它应该放一个
断点pos=i
之后的code>和
大于/小于+=40
应该从if语句中移出。从OP中不清楚pos小于0时会发生什么。我什么都没有假设,所以如果我的答案中的pos<0,就不修改pos。@dave当我们看到滚动这个词出现时,我假设你不能滚动到负值。如果这个假设是错误的,OP可能需要考虑如何做(例如,代码>如果(POS<0)POS=0;< /代码>)哇!真棒的回答!非常感谢你。如果可以,我会接受。OP不清楚如果pos小于0会发生什么。我什么都没有假设,所以如果我的答案中的pos<0,就不修改pos。@dave当我们看到滚动这个词出现时,我假设你不能滚动到负值。如果这个假设是错误的,OP可能需要考虑如何做(例如,代码>如果(POS<0)POS=0;< /代码>)哇!真棒的回答!非常感谢你。我能接受的时候就接受。