Не выполняется цикл for JS
Почему может не выполнятся цикл for? Цикл со счетчиком i то есть если я его тело скрываю под коментом, то он выполняется столько раз сколько нужно, если же все как есть то цикл выполняется лиш первый раз. Вроде я счетчик в теле не менял и выхода из функции в теле не делал, ничего не понимаю.
function loadGrain(levels) {
let sum = 0;
max = levels[0];
k = 0;
alert (levels.length);
for (var i = 1; i <= levels.length - 1; i++) {
alert ("i= " + i +" levels[i] = " + levels[i]);
if (levels[i] >= max) {alert("levels[i] >= max");
if (i == k + 1) {alert("i == k + 1");
max = levels[i];
k = i;
}else {
for (var counter = k+1; counter < i; counter++) {
sum = sum + max - levels[counter];
//alert("for1 sum = " + sum);
}
max = levels[i];
k = i;
}
} else {
if (i = levels.length - 1 || levels[i]>levels[i+1]) {
for (var counter = k+1; counter < i; counter++) {
//alert("i= " + i + " counter" + counter + " sum =" + sum);
sum = sum + levels[i] - levels[counter];
//alert("for2 sum = " + sum);
}
max = levels[i];
k = i;
}
}
}
return sum;
}
alert(loadGrain([4, 1, 3])); // 2
alert(loadGrain([2, 1, 5, 2, 7, 4, 10])); // 7
Ответы (1 шт):
Автор решения: Zhihar
→ Ссылка
if (i = levels.length - 1 || levels[i]>levels[i+1]) {
у вас точно присваивание, а не сравнение должно быть?
if (i == levels.length - 1 || levels[i]>levels[i+1]) {