2

我在这里有这段代码.. 其中变量num是 n 方表的维度。目标是输入一个数字并创建一个以数字为维度的表格。

我得到了这段代码,但它没有经过 2 层 for 循环。代码执行后,字符串 *change_text* 就变成了:<table></table>

    change_text = "<table>";

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

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


    change_text = change_text+ "</table>"
4

7 回答 7

7

您需要初始化迭代器:

for(var i = 0; i < num; i++)
于 2013-02-19T14:44:51.490 回答
3

哦,我还注意到 num 没有具体定义。无论您从哪里获得 num ,如果它可能作为字符串传递,请确保使用 parseInt 。num = parseInt(num);

于 2018-09-10T22:15:05.813 回答
2

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

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并且jundefined,所以循环不会去任何地方。

于 2013-02-19T14:44:41.787 回答
2

你需要初始化 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>"
于 2013-02-19T14:44:49.713 回答
2

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

for (var i = 0; i<num; i++)
于 2013-02-19T14:44:53.883 回答
2

未初始化 i,使 i=0

 for (var i=0; i<num; i++) {
       //code
    }
于 2013-02-19T14:44:58.417 回答
1

您忘记了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>"
于 2013-02-19T14:44:53.673 回答