javascript嵌套for循环不会一直迭代

时间:2017-10-01 21:47:50

标签: javascript html for-loop nested-loops

我试图将circle放置在1920 * 850 (x, y)上的x50,其中y75for而变化因circle而异。我设置了一个嵌套的for循环来实现这一点,但很快发现它无法正常工作,即循环在某个点之后停止。然后我用一些没有i = 14放置代码的简单嵌套for循环做了一些场景,发现它们在某个点之后也停止了。

在下面的代码中,我有一个简单的嵌套j = 19循环,在运行它时,它会在consolefor (var i = 0; i < 20; i++) { j = 0 for (var j = 0; j < 70; j++) { console.log('i: ' + i + ' j: ' + j); } }时停止。在MvxColor中,它只是声明'Javascript控制台中发生错误

MvxColor

这里有什么根本性的错误,这看起来像是一段简单的代码,但我不知道为什么它会停止。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我已经解决了这个问题。我找到了一个帖子,其中控制台日志在999之后没有显示for循环的输出。此外,我的初始javascript循环中出现错误以产生圆圈,我在每个圆圈绘制后都没有使用beginPath,那是给出非常混乱的结果。

I.E. Console log with for loop

在审核之后,我意识到我的代码可能仍在运行,但控制台没有显示它。所以我重新编写了代码以填充画布,因为我已经开始使用了它现在正在运行。

$(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 !!