Не выполняется цикл 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]) {
→ Ссылка