Javascript 代码战争永久性错误问题,if语句未为循环运行
我正在研究JavaScript代码战争的持久性问题。如代码中所示,if语句似乎完全忽略了其中的for循环 for循环内记录的任何内容都不会显示,而for循环外记录的任何内容都保持不变,就好像for循环不存在一样。我曾尝试研究if语句中for循环的使用以及这个代码战问题的现有解决方案,但没有看到我的问题被复制。根据我的理解,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')
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)//