如何制作一个数组网格,宽度为javascript中给出的宽度和高度

时间:2017-01-17 00:59:43

标签: javascript arrays

我被困在学校里。在给定高度和宽度的情况下,我们必须创建一个创建网格的函数,并使用给定的值填充所有内容。我几乎有解决方案,但仍然有一个测试用例出错,我似乎无法理解为什么。 Here are the test cases.

function createGrid(width, height, value) {
    var x = new Array(width);
    for (var i = 0; i < width; i++) {
        x[i] = new Array(height);
    }
    for (i = 0; i < height; i++) {
        for (j = 0; j < width; j++) {
            x[i][j] = value;
        }
    }
    return x;
}

3 个答案:

答案 0 :(得分:0)

您可能希望检查变量的一致性。尝试使用'h'和'w'而不是'i'和'j',我想你会看到问题。

答案 1 :(得分:0)

在第三个循环中,您错放了索引。而不是x [i] [j],应该有x [j] [i]。

答案 2 :(得分:0)

您似乎在打印数据时出错了。您无法在插入值的同一循环中打印它们。你必须运行一个不同的循环。

我已将它们作为表格打印在代码段中。通过单击按钮,它将打印(4,7,0)。您可以通过更改按钮的html来检查其他值。

&#13;
&#13;
function createGrid(width, height, value) {
  var x = new Array(width);
  for (var i = 0; i < width; i++) {
      x[i] = new Array(height);
  }
  for (var k = 0; k < width; k++) {
    for (var j = 0; j < height; j++) {
      x[k][j] = value;
    }
  }
  //printing the data
  var innerTable = " ";
  for (k=0;k<height;k++){
    innerTable += "<tr>";
    for (j = 0; j < width; j++){
      innerTable += "<td>"+x[j][k]+"</td>";
    }
    innerTable += "</tr>";
  }
  document.getElementById("toPrint").innerHTML = innerTable;
}
&#13;
<button onclick="createGrid(4,7,0)">ClickMe</button>
<table id="toPrint">
</table>
&#13;
&#13;
&#13;