循环执行后保留for循环变量

时间:2019-06-11 14:09:00

标签: javascript for-loop scope

我试图在执行后保留一个for循环变量,因为条件将通过另一个for循环改变。这是我的例子:

l = 0;
for (var i = 0;i<5:i++){
    for(var l; l<l+i;l++){
    }
}

我的目标是记住离开for循环时的l值,并使用新条件将其保留用于下一次执行。我知道这很模糊,但是可以提供任何帮助。

4 个答案:

答案 0 :(得分:0)

只需使用while循环:

var l = 0;
for (var i = 0;i<5:i++){
    while(l < l+i) {
      // do stuff
      l++;
    }
    // Here you have the value of l when breaked out of the loop
}

答案 1 :(得分:0)

var l = 0;
for (var i = 0;i<5:i++){
    for(l; l<l+i;l++){
    }
}

将让您保留l的最新值。顺便说一句,我怀疑不使用break会导致一个无限循环,因为l始终小于{{ 1}}(l+i不为0时)。

编辑:循环不递归

答案 2 :(得分:0)

您的代码已按预期工作,var l在外部作用域中声明变量,以便您可以在循环外部访问它。

但是,您将需要修正拼写错误(:-> ;)和无限循环(对于肯定的l<l+i来说,i总是正确的),我d建议将var声明放在变量的第一次初始化中:

var l = 0;
for (var i=0; i<5; i++) {
    var end = l+i;
    for (; l<end; l++) {
        console.log(i, l);
    }
}

答案 3 :(得分:0)

其他答案也可以,但是您没有理由在2019年使用var,并且它们也没有有效地利用for循环语法。

let l = 0;
for (let i = 0; i<5; i++){
    for(; l < i + 1; l++){

    }
}
console.log(l); // 5

此示例通过外部循环的迭代维护l的值,然后将其保留在末尾。