Сначала я думаю, вы должны понять, как работает цикл for
.
var sumEvery5th = function(n){
let sum = 0;
for(let i = 1; n % 5 == 0; i++){
sum+ i
};
return sum;
}
Шаг за шагом вы делаете следующее:
- Объявление переменной
i
со значением 1. - Деление
n
на 5 и взятие значения остатка и сравнение его с 0. В случае, если это правда, вы пропускаете блок кода внутри for и движетесь к return sum;
line. - (Если вы не пропустили блок кода на шаге 2) Запустите блок кода с новым значением
i
. - (Если вы не пропустилиблок кода на шаге 2) Увеличение значения i.
- Вернитесь к шагу 2.
Обычно ваше for
условие зависит от объявленной переменнойв шаге 1. То, что вы хотите сделать, это выполнить for
кодовый блок n
раз. Для этого вам нужно изменить ваше состояние с n % 5 == 0
на i <= n
. Это обеспечит запуск блока кода, когда ваш i
меньше или равен n
, начиная со значения 1.
Теперь внутри вашего блока кода вы добавляете логику divisible by 5
,проверка значения i
.
for(let i = 1; i <= n; i++){
if (i%5 == 0) sum += i;
};
Теперь, допустим, я вызвал sumEvery5th (5).
- Объявите переменную i со значением 1.
- Проверкаесли
i
(1) меньше или равно n
(5). - Войдите в блок кода.
- Проверьте, равен ли i% 5 0.
- Это не так.
- Инкремент i, теперь i = 2.
- Проверьте, что
i
(2) меньше или равно n
(5). ... И так далее, пока i = 6, и в этом случае блок кода пропускается, и программа продолжит свой ход.
Ps .: Существуют способы улучшить производительность этогоалгоритм, но теперь, когда вы немного лучше понимаете свой цикл for
, я оставлю его вам:)