Javascript 条件语句未执行

Javascript conditional statement not executing

我正在尝试创建一个构建棋盘的函数,但是我无法让我的第二个条件语句执行并创建一个新行。

function grid(size) {
  var board = "";
  for (i = 0; i <= (size * size); i++) {
    if (i % 2 === 0) {
      board += ' ';
    } else if (i % size === 0) {
      board += "\n";
    } else {
      board += '#';
    }
  }
  console.log(board);
}
grid(8);

似乎 else if 语句没有执行,因为我尝试将 '\n' 和条件更改为其他内容,但没有打印任何内容。这个问题来自 Eloquent Javascript 给出的解决方案是这样的:

var size = 8;

var board = "";

for (var y = 0; y < size; y++) {
  for (var x = 0; x < size; x++) {
    if ((x + y) % 2 == 0)
      board += " ";
    else
      board += "#";
  }
  board += "\n";
}

console.log(board);

我不确定为什么第二个有效但我的无效。

i % 2 将始终执行而不是 i % (8 * 8)。您应该交换他们的顺序或从第二个 if 中删除 else

让我们分析您的代码:

 if(i % size === 0)

这意味着,当 i 等于 0 或者是大小的倍数时。在你的例子中,大小是 8.

所以如果要触发,i 应该是 0,8,16,32....

在所有这些情况下,它永远不会触发,因为当 i 是 0,8,16,32... i % 2 是 0,所以它将 运行 第一个 if 而不是第二个一。您应该颠倒 ifs 或 运行 both

的顺序