我有一个 for 循环,它将遍历所有选择并为它们设置一个值。 出于某种原因,当我运行代码时,它会执行第一次迭代,然后跳到最后一次并执行 3 次,根据控制台,大约如此。
代码:
for (i = 0; i < 4; i += 1) {
console.log(i)
var generated = word
while (generated == word) {
generated = wordsJson.characters[Math.floor(Math.random() * wordsJson.characters.length)]
}
choices[i].innerHTML = translate(generated)
}
我在控制台中得到了什么:
0
(3) 3
这是我第一次在 stackoverflow 上提问。如果您需要更多信息,请询问。
答案 0 :(得分:0)
似乎变量 i
在 for
循环之外被修改。
通常,您需要声明迭代器变量(在本例中为 i
),以便将其范围限定为循环,如下所示:
for (let i = 0; i < 4; i += 1) { ... }
特别注意添加了 let
。由于您还没有这样做,这意味着 i
已经在某处显式声明,或者如果没有,则您已经创建了一个新的全局变量 i
。
由于您有未显示的代码,这些代码似乎也与 i
(choices[i]
) 和我们不知道 (translate()
) 很难确定,但那将是第一个看的地方。
如果没有,发布一些额外的代码以便我们看到其他功能会有所帮助。