Сохранение переменной цикла for после выполнения цикла - PullRequest
0 голосов
/ 11 июня 2019

Я пытаюсь сохранить переменную цикла for после ее выполнения, так как условие будет меняться через другой цикл for.Вот мой пример:

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

Моя цель здесь - запомнить значение l, когда я покидаю цикл for, и сохранить его для следующего выполнения с новым условием.Я понимаю, что это расплывчато, но любая помощь приветствуется.

Ответы [ 4 ]

0 голосов
/ 11 июня 2019

Другие ответы будут работать, однако у вас нет причин использовать var в 2019 году, и они также не могут эффективно использовать синтаксис цикла for.

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

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

Этот пример поддерживаетзначение l через итерации внешнего цикла и затем также сохраняет его в конце.

0 голосов
/ 11 июня 2019
var l = 0;
for (var i = 0;i<5:i++){
    for(l; l<l+i;l++){
    }
}

Позволит вам сохранить последнее значение для l.Кстати, без использования break я подозреваю, что это приведет к и бесконечной петле , поскольку l всегда будет меньше l+i (когда iне 0).

Редактировать: цикл не рекурсия

0 голосов
/ 11 июня 2019

Ваш код уже работает должным образом, var l объявляет переменную во внешней области видимости, чтобы вы могли получить к ней доступ вне цикла.

Однако вам нужно будет исправить опечатку (: -> ;) и бесконечный цикл (l<l+i всегда верно для положительного i), и я бы рекомендовал поставить var объявление о первой инициализации переменной:

var l = 0;
for (var i=0; i<5; i++) {
    var end = l+i;
    for (; l<end; l++) {
        console.log(i, l);
    }
}
0 голосов
/ 11 июня 2019

Просто используйте петлю 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
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...