如何在Javascript中创建一个模拟100行和10列网格的嵌套循环?

时间:2013-11-09 07:24:17

标签: javascript for-loop while-loop nested iteration

我是Javascript的新手,我很难用这个。这些数字最多可以计算100行,并且应该计数超过10列。我只能在页面上向下计数列,而不是像我想要的那样。现在,列号读取为奇数而不是按顺序读取。我不知道我是怎么造成这种情况发生的。列号应为1到10,并向下读取100行。请帮忙!非常感谢你,提前!

  var RowNum = 1;
  var ColNum = 1;

  for(RowNum=1; RowNum<=100; RowNum++)
for(ColNum=1; ColNum<=10;ColNum++)
  {
  document.write("RowNum: " + RowNum + " " + "Column: " + ColNum + "</br>");
  RowNum++;
  ColNum++;
   }
   while
   (RowNum <=100);
RowNum = RowNum + 1;
   while
    (ColNum<=10);


ColNum = ColNum + 1;

4 个答案:

答案 0 :(得分:2)

for(RowNum=1; RowNum<=100; RowNum++)
for(ColNum=1; ColNum<=10;ColNum++)
{
  document.write("RowNum: " + RowNum + " " + "Column: " + ColNum + "</br>");
  //RowNum++;  remove this
  //ColNum++;  remove this
}

奇数问题是由这个“ColNum ++”引起的,ColNum是一个'for'循环变量,每次都会递增,然后在同一回合中你将它增加1,这将使该行

document.write("RowNum: " + RowNum + " " + "Column: " + ColNum + "</br>");

仅适用于奇数

答案 1 :(得分:0)

TL; DR :您的错误是将RowNum++;ColNum++;放入for;删除它们,它会工作。

试试这个:

  var maxRow = 100;
  var maxCol = 10;
  for (var i = 0; i < maxRow; i++) {
      for (var j = 0; j < maxCol; j++) {
          document.write("RowNum: " + i + " " + "ColNum: " + j + "</br>");
      }
  }

首先,您不需要在循环中添加RowNum++;ColNum++;,它已在此处:for(RowNum=1; RowNum<=100; RowNum++)。接下来,不是

while
   (RowNum <=100);
RowNum = RowNum + 1;

相当于RowNum+=100;? (但要快得多) 最后它仍然没有RowNum+=100;,因为你在{I}之后放了;

答案 2 :(得分:0)

您可以更轻松地建议您手动在HTML中生成2到3列和几行,这样您就可以看到需要将哪种格式写入文档。

现在你只是吐出1000行文本节点,后面有HTML符号,并且没有标记,这将为你提供行/列数据布局。直到你知道你的最终HTML标记应该是什么样的,你不会走得太远。

此外,你在递增它们的循环中递增RowNum和ColNum,这样就会出现可怕的错误。看看@Mageek使用两个嵌套循环所做的事情,这对你来说更容易理解,但仍会在页面下生成所有内容。

答案 3 :(得分:0)

实现此目的的最简单方法是使用嵌套循环。 (另一个循环内部的循环)第一个循环创建TR元素,而第二个循环创建该行的TD元素。

var rows=100;
var cols=10;

document.write("<table>");
  for (i=0; i<rows; i++) {
    document.write("<tr>");
      for (j=0; j<cols; j++) {
        document.write("<td>col"+j+"</td>");
      }
    document.write("</tr>");
  }
document.write("</table>");