Javascript 代码战争永久性错误问题,if语句未为循环运行

Javascript 代码战争永久性错误问题,if语句未为循环运行,javascript,for-loop,if-statement,Javascript,For Loop,If Statement,我正在研究JavaScript代码战争的持久性问题。如代码中所示,if语句似乎完全忽略了其中的for循环 for循环内记录的任何内容都不会显示,而for循环外记录的任何内容都保持不变,就好像for循环不存在一样。我曾尝试研究if语句中for循环的使用以及这个代码战问题的现有解决方案,但没有看到我的问题被复制。根据我的理解,if语句应该自上而下贯穿其中的所有内容 const persistence = (num) => { if (typeof(num) === 'number')

我正在研究JavaScript代码战争的持久性问题。如代码中所示,if语句似乎完全忽略了其中的for循环

for循环内记录的任何内容都不会显示,而for循环外记录的任何内容都保持不变,就好像for循环不存在一样。我曾尝试研究if语句中for循环的使用以及这个代码战问题的现有解决方案,但没有看到我的问题被复制。根据我的理解,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))
const persistence=(num)=>{
if(typeof(num)==“number”){
让计数=0
设mult=num
设newMult=1
停止=错误
while(stop==false){
如果(多个>=10){
for(设i=0;i

我想我的逻辑是正确的,但是关于if语句和for循环如何工作,可能有一些基本问题我还没有解决。我注意到有更简单的方法来解决这个问题,但是如果我能收到关于为什么我的特定代码不起作用的反馈,以及我如何调整它使其起作用的反馈,我将不胜感激。

您在for循环上迭代的长度是
num
。由于
num
是类型编号,因此它没有长度。

您需要迭代字符串版本的
mult
(我们称之为
multStr
),以数字形式访问其数字索引属性。(否则,它将没有
长度
,访问它的数字属性不会得到任何回报。)

您还可以通过提前返回而不是使用这样的嵌套块来显著清理代码:

const persistence=(num)=>{
if(typeof num!=“number”){
返回;
}
让计数=0
设mult=num
while(true){
如果(mult<10){
返回计数;
}
const multStr=字符串(mult)//