在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);
答案 0 :(得分:3)
当值超出 endVal:
时,您希望停止val != endVal + step