Javascript:for循环不工作

Javascript:for循环不工作,javascript,loops,for-loop,closures,anonymous,Javascript,Loops,For Loop,Closures,Anonymous,我这里有这个密码。。其中,变量num是n×n平方表的维数。目标是输入一个数字并创建一个以该数字为维度的表 我得到了这段代码,但它没有通过for循环的两层。代码执行后,字符串*change_text*将变为: 您需要指定循环的起始值: change_text = "<table>"; for (var i = 0; i<num; i++) { change_text = change_text + "<tr>"; for (v

我这里有这个密码。。其中,变量num是n×n平方表的维数。目标是输入一个数字并创建一个以该数字为维度的表

我得到了这段代码,但它没有通过for循环的两层。代码执行后,字符串*change_text*将变为:


您需要指定循环的起始值:

change_text = "<table>";

    for (var i = 0; i<num; i++) {
        change_text = change_text + "<tr>";
        for (var j = 0; j<num; j++) {
            change_text = change_text + "<td> asdf </td>";

            //code for blue cells
        }
        change_text = change_text + "</tr>";
    }


    change_text = change_text+ "</table>"

目前,我假设I和j未定义,因此循环不会去任何地方。

您需要指定循环的起始值:

change_text = "<table>";

    for (var i = 0; i<num; i++) {
        change_text = change_text + "<tr>";
        for (var j = 0; j<num; j++) {
            change_text = change_text + "<td> asdf </td>";

            //code for blue cells
        }
        change_text = change_text + "</tr>";
    }


    change_text = change_text+ "</table>"

目前,我假设I和j未定义,因此循环不会去任何地方。

您需要初始化I和j。。。 试试这个:

change_text = "<table>";

for (var i=0; i<num; i++) {
    change_text = change_text + "<tr>";
    for (var j=0; j<num; j++) {
        change_text = change_text + "<td> asdf </td>";

        //code for blue cells
    }
    change_text = change_text + "</tr>";
}


change_text = change_text+ "</table>"

你需要初始化i和j。。。 试试这个:

change_text = "<table>";

for (var i=0; i<num; i++) {
    change_text = change_text + "<tr>";
    for (var j=0; j<num; j++) {
        change_text = change_text + "<td> asdf </td>";

        //code for blue cells
    }
    change_text = change_text + "</tr>";
}


change_text = change_text+ "</table>"

您需要初始化迭代器:

for(var i = 0; i < num; i++)

您需要初始化迭代器:

for(var i = 0; i < num; i++)
您忘记了i=0/j=0的初始化。您只声明了变量,而undefined总是从数值比较中产生false,这会立即中断循环。所以把你的代码改成

change_text = "<table>";
for (var i=0; i<num; i++) {
    change_text = change_text + "<tr>";
    for (var j=0; j<num; j++) {
        change_text = change_text + "<td> asdf </td>";
        //code for blue cells
    }
    change_text = change_text + "</tr>";
}
change_text = change_text+ "</table>"
您忘记了i=0/j=0的初始化。您只声明了变量,而undefined总是从数值比较中产生false,这会立即中断循环。所以把你的代码改成

change_text = "<table>";
for (var i=0; i<num; i++) {
    change_text = change_text + "<tr>";
    for (var j=0; j<num; j++) {
        change_text = change_text + "<td> asdf </td>";
        //code for blue cells
    }
    change_text = change_text + "</tr>";
}
change_text = change_text+ "</table>"

您需要初始化i和j,如下所示:

for (var i = 0; i<num; i++)

您需要初始化i和j,如下所示:

for (var i = 0; i<num; i++)

未初始化i,使i=0

 for (var i=0; i<num; i++) {
       //code
    }

未初始化i,使i=0

 for (var i=0; i<num; i++) {
       //code
    }

哦,我还注意到num没有明确定义。无论从何处获取num,如果它可能作为字符串传递,请确保使用parseInt。num=parseIntnum

Ohhh我还注意到num没有明确定义。无论从何处获取num,如果它可能作为字符串传递,请确保使用parseInt。num=parseIntnum

作为参考,您只需更改_text+=新文本即可;而不是更改文本=更改文本+新文本;作为参考,您只需更改_text+=新文本即可;而不是更改文本=更改文本+新文本;