[英]javascript nested for loops not iterating all the way through
我试图在HTML画布上放置一个circle
,该画布在(x, y)
上的尺寸为1920 * 850
(x, y)
其中x
变化了50
而y
变化了75
。 我设置了一个嵌套的for
循环来完成此操作,但是很快发现它不起作用,即循环在某个点之后停止了。 然后,我使用简单的for循环进行了一些场景,没有circle
放置代码,发现它们也在某个点之后也停止了。
在下面的代码中,我有一个简单的嵌套for
循环,运行它时,在i = 14
和j = 19
时它停止。 在console
,它仅指出“在Javascript控制台中发生了错误
for (var i = 0; i < 20; i++) { j = 0 for (var j = 0; j < 70; j++) { console.log('i: ' + i + ' j: ' + j); } }
这里根本有什么问题吗,这看起来像是一段简单的代码,但我不知道为什么它会停止。
有任何想法吗?
我已经解决了这个问题。 我发现一则帖子,其中控制台日志在999之后没有显示for循环的输出。此外,我的初始javascript循环生成圆时出错,我在绘制每个圆后都没有使用beginPath,给出非常混乱的结果。
审查之后,我意识到我的代码可能仍在运行,但是控制台未显示它。 因此,我重新编写了代码以填充画布,并且现在可以正常工作了。
$(document).ready(function ()
{
var header = $('#header');
var footer = $('#footer');
var canvas = $('#myCanvas3')[0];
canvas.width = window.innerWidth;
canvas.height = window.innerHeight - header.height() - footer.height();
var ctx = canvas.getContext('2d');
var i = 0;
var j = 0;
for (var y = 1; y < 18; y++)
{
i = y * 50;
for (var x = 0; x < canvas.width; x++)
{
j += 1;
if (j == 50) {
console.log('x: ' + x);
ctx.beginPath();
ctx.fillStyle = 'red';
ctx.arc(x, i, 2, 0, Math.PI * 2, false);
ctx.fill();
j = 0;
}
}
}
});
经验教训-在画布上绘制项目时,请确保在绘制新项目时使用beginPath!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.