https://www.codewars.com/kata/persistent-bugger/train/javascript Я работаю над проблемой постоянных ошибок в JavaScript Code Wars. Как видно из кода, мой оператор if, кажется, полностью игнорирует цикл for внутри него.
Все, что записано в цикле for, не отображается, а все, что записано вне цикла for, остается таким же, какесли цикл не был там. Я пытался исследовать использование циклов for внутри операторов if, а также существующие решения этой проблемы Code Wars, но не видел, чтобы моя проблема была воспроизведена. Насколько я понимаю, оператор if должен проходить через все сверху донизу.
const persistence = (num) => {
if (typeof(num) === 'number') {
let count = 0
let mult = num
let newMult = 1
let stop = false
while (stop === false){
if (mult >= 10) {
for (let i = 0; i < mult.length; i++) {
newMult = newMult * mult[i]
// // doesn't log anything. code isn't running through for loop?
// console.log(newMult)
}
// // logs initial num of 999
// console.log(mult)
// // logs initial newMult of 1
// console.log(newMult)
count++
mult = newMult
newMult = 1
}
else {
stop = true
}
}
return count
}
}
// logs 1, should be 4
console.log(persistence(999))
Я думаю, что у меня правильная логика, но, возможно, есть какая-то фундаментальная проблема, которую я упускаю в отношении того, какработают операторы if и for-loop. Я заметил, что есть гораздо более простые способы решения этой проблемы, но если бы я мог получать отзывы о том, почему мой конкретный код не работает, и как я мог настроить его, чтобы он работал, это было бы очень признательно.