【问题标题】:Grid 8x8 on javascript with arrays带有数组的javascript上的网格8x8
【发布时间】:2018-03-28 00:58:39
【问题描述】:

我正在尝试编写一个如下所示的网格:

8x8 grid

正如您所见,每个“#”之前都有一个空格“”。 到目前为止我得到了这个:

function myfunction() {

  cols = 8;
  rows = 8;
  board = [];


  for (i = 0; i <= cols; i++) {
    for (j = 0; j <= rows; j++) {
      console.log(board[i][j] = '#');
    }
  }
}

我不完全确定我错在哪里,请帮忙!!

【问题讨论】:

    标签: javascript arrays grid newline


    【解决方案1】:

    您从未在 board 中定义任何内容,这会导致 TypeError(您无法访问 board[i][j]。您可以完全丢弃 board 变量,只需使用 cols 打印 board)和rows,并通过添加到字符串变量来显示:

    function myfunction(){
      let cols = 7;
      let rows = 7;
      let displayStr= '';
      for(let i = 0; i<=cols; i++){
        for (let j = 0; j<=rows; j++) {
          if ((i + j) % 2 === 0) displayStr += '#';
          else displayStr += ' ';
        }
        displayStr += '\n';
      }
      console.log(displayStr);
    }
    myfunction();

    【讨论】:

    • 天哪,我不知道“让”是什么。我还以为我必须在这上面使用数组,但是您以一种非常简单的方式做到了,非常感谢!!!
    • 有没有什么方法可以给你投票,给你一颗星之类的?这对我帮助很大。
    • 在声明变量时使用let(或const,这是更可取的,或var)意味着您创建了适当的局部范围变量——当您声明它们时没有一个标识符,你隐式地创建了全局变量,这是要不惜一切代价避免的。当您看到回答您的问题或有用的答案时,您可以投票(按向上的三角形)并接受它们作为正确答案(如果您是提问者)。
    • 非常感谢!在这部分我只有一个问题: if ((i + j) % 2 === 0) displayStr += '#';否则 displayStr += ' '; } displayStr += '\n'; } 你为什么要在 'i' 和 'j' 之间加号?
    • 这就是使行能够在交替索引(0 和 1)上以“#”开头的原因。看看取出后会发生什么
    猜你喜欢
    • 1970-01-01
    • 2011-12-06
    • 2017-10-30
    • 2016-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-05
    相关资源
    最近更新 更多