我正在使用HTML Canvas,并使用JavaScript中的For循环在其上生成了网格。在每行上方的顶部网格上,我想显示数字以对它们进行计数,但是使用在循环中创建的计数器变量,整个过程中,它仅显示我对其初始化的内容,并且每次循环都不递增运行。
for (let topNum = 44; topNum < 1990; topNum = topNum + 50) {
let x = 45;
let i = 0;
c.fillStyle = "rgb(0, 0, 0)";
c.font = "30px serif";
c.fillText(i, topNum, x);
i = i + 1;
}
答案 0 :(得分:2)
我不确定我是否理解,但是问题是您应该将let i = 0
移到以下位置:
let i = 0;
for (let numTop = 44; numTop < 1990; numTop = numTop + 50) {
let x = 45;//Each time it starts again
c.fillStyle = "rgb(0, 0, 0)";
c.font = "30px serif";
c.fillText(i, numTop, x);
i = i + 1;
}
答案 1 :(得分:2)
将x = 45和i = 0移到for循环之外,这样就不会在每次函数循环时重置它们。
i=0;
x=45;
for loop goes here.
答案 2 :(得分:0)
记住作用域,并创建let
和const
并在定义的行上分配值。
还请记住,您可以将v = v + 1
更改为v++
,并将v = v + 50
更改为v+=50
for (let numTop = 44, i = 0, x = 45; numTop < 1990; numTop += 50, i++) {
c.fillStyle = "rgb(0, 0, 0)";
c.font = "30px serif";
c.fillText(i, numTop, x);
}
上面的代码显示,您可以在for
循环中定义多个变量,并且可以在for
循环声明中更改值。
在这种情况下,我们在numTop
循环中定义x
,i
和for
,并调整numTop
和{{1}的值}在i
循环中。