JavaScript for循环仅执行一次:使用数组元素作为循环条件的问题
问题原因分析
你的问题核心在于循环条件中的arr[i]会随着i的递增而动态变化,并非固定的初始值3。
初始时i=0,arr[0]=3,满足0 < 3,执行循环体后newArr推入一个"M",随后i自增为1。
接下来检查循环条件时,判断的是1 < arr[1]——你只确认了arr[0]的值为3,但arr[1]的值大概率是undefined(转为数字是NaN,1 < NaN结果为false),或者arr[1]的值≤1,导致条件不成立,循环直接终止,所以只执行了一次。
你在循环内打印arr[i]只看到3,是因为循环体仅执行了一次(此时i仍为0),没机会打印i=1时的arr[i]。
解决办法
把需要循环的次数先存入一个固定变量,避免条件随i变化:
const loopCount = arr[0]; for (let i = 0; i < loopCount; i++) { newArr.push("M"); }
这样循环条件中的loopCount是固定的3,不会随i的递增改变,就能正常执行3次循环。
内容的提问来源于stack exchange,提问作者solanoct
相关产品推荐
相关产品推荐

