В чем ошибка в этой функции? Я хочу вернуть значение bk, как только оно достигнет 10; но результат не определен?
function doMyLoop () { for (var bk = 0; bk < 10; bk++) { if (bk == 10) { return(bk); } } } doMyLoop ();
Вы можете переместить оператор возврата за пределы цикла, поскольку последнее значение bk равно 10. Проверка с этим значением внутри цикла никогда не бывает true.
bk
10
true
function doMyLoop () { for (var bk = 0; bk < 10; bk++) { console.log('insode loop', bk); } return bk; // 10 } console.log(doMyLoop());
.as-console-wrapper { max-height: 100% !important; top: 0; }
Потому что ваш цикл никогда не достигнет 10. Так как вы указали условие bk < 10 Измените условие на bk <= 10. И тогда все будет работать
bk < 10
bk <= 10
function doMyLoop () { for (var bk = 0; bk <= 10; bk++) { if (bk == 10) { return(bk); } } } console.log(doMyLoop ());