方向不可知的循环,如何在迭代中包含最终值?

时间:2017-05-09 20:39:03

标签: javascript for-loop

this solution之后,我想创建一个运行的for循环,无论起始值是大于还是小于结束值:

function iterateStartToEnd(startVal,endVal){
    var val=startVal;
    for (var step=val>endVal?-1:+1;val!=endVal;val+=step){
        //do something with iterated val
        console.log(val);
    }
}

startVal=6;
endVal=3;
iterateStartToEnd(startVal,endVal);

由于for循环定义中的val!=endVal(这似乎是使循环方向不可知的一部分所必需的),最终值不包含在迭代中,因此在这种情况下输出看起来像:

6
5
4

但我希望包含最终值endVal。有没有办法将它包含在for循环中,或者我是否必须使用以下内容包含它:

function iterateStartToEnd(startVal,endVal){
    var val=startVal;
    for (var step=val>endVal?-1:+1;val!=endVal;val+=step){
        //doSomething(val);
        console.log(val);
    }
}

startVal=6;
endVal=3;
iterateStartToEnd(startVal,endVal);

//doSomething(endVal);
console.log(endVal);

1 个答案:

答案 0 :(得分:3)

当值超出 endVal:

时,您希望停止
val != endVal + step