https://www.codewars.com/kata/persistent-bugger/train/javascript 我正在研究JavaScript Code Wars Persistent Bugger问题。如代码所示,我的if语句似乎完全忽略了其中的for循环。
在for循环中记录的所有内容均不会显示,并且在for循环之外记录的所有内容均与for循环中没有记录的内容相同。我曾尝试研究if语句中for循环的使用以及此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循环的工作方式,也许我缺少一些基本问题。我注意到有很多更简单的方法可以解决此问题,但是如果我能收到有关为什么我的特定代码不起作用以及如何对其进行调整的反馈,将不胜感激。