Javascript 将for循环条件指定给变量

Javascript 将for循环条件指定给变量,javascript,Javascript,在Javascript的for循环中,有没有办法将变量指定为条件运算符 例如,将此作为循环: for(var i = 0, j = 5; i < 10; i++, j++) { console.log(i + ", " + j); } for(变量i=0,j=5;i

在Javascript的
for
循环中,有没有办法将变量指定为条件运算符

例如,将此
作为
循环:

for(var i = 0, j = 5; i < 10; i++, j++) {
    console.log(i + ", " + j);
}
for(变量i=0,j=5;i<10;i++,j++){
控制台日志(i+“,”+j);
}

我希望能够将
I<10
部分设置为变量。我可能希望for循环一直运行到
j<8
,而不是
I<10
。我目前的做法是使用一个
if
语句,然后使用两个不同的
for
循环,除了条件外,循环的代码完全相同,我只是想知道是否有一种更有效的方法。谢谢

当然,你有没有试着把变量粘在里面:

var total = true==true ? 8 : 10,
    i     = 0,
    j     = 5,
    what  = true==false ? i : j;

for(; what < total; i++, j++) {
    console.log(i + ", " + j);
}
var total=true==true?8 : 10,
i=0,
j=5,
什么=真=假?i:j;
对于(;what
您可以用变量替换
10
。您不能替换运算符(
我想您可以为此创建一个随机函数

function countdown = (function(){
   var i =0, j = 5;
   return function(){
       ++i; ++j;
       return i < 10; // or j < 8
   }
})();

while(countdown()) {
    console.log('counting');
}
函数倒计时=(函数(){
变量i=0,j=5;
返回函数(){
++i、 ++j;
返回i<10;//或j<8
}
})();
while(倒计时()){
console.log('counting');
}

唯一的问题是,您无法在循环范围内访问
i
j

使用for循环中的函数,并将其重新分配给您想要的任何对象

var predicate = function(i, j) { return i < 10; }

for(var i = 0, j = 5; predicate(i, j); i++, j++) {
    console.log(i + ", " + j);
    if (i === 5) { // Dummy condition
        predicate = function(i, j) { return j < 8; };
    }
}
var谓词=函数(i,j){返回i<10;}
for(变量i=0,j=5;谓词(i,j);i++,j++){
控制台日志(i+“,”+j);
如果(i==5){//伪条件
谓词=函数(i,j){返回j<8;};
}
}

优点是,如果需要,您可以完全更改逻辑。

我认为您需要一个前导的
(;what
var predicate = function(i, j) { return i < 10; }

for(var i = 0, j = 5; predicate(i, j); i++, j++) {
    console.log(i + ", " + j);
    if (i === 5) { // Dummy condition
        predicate = function(i, j) { return j < 8; };
    }
}