我正在尝试以网格格式打印9x9 2D JavaScript数组,但无法换行以连接成可打印的字符串。当我想在正方形网格中打印时,它将整个阵列打印在一行中。这是代码:
function printBoard(board) {
var toPrint = "";
for (var i = 0; i < board.length; i++) {
for (var j = 0; j < board.length; j++) {
toPrint += board[i][j] + " ";
}
toPrint += "\n";
}
document.getElementById("printBoard").innerHTML = toPrint;
}
有人看到我看不到的明显东西吗?我是JavaScript的新手,因此,如果它是明显的错误,请对我放轻松,但我不仅会看到它。 innerHTML函数不打印多行吗? HTML的一面非常简单:
<p id="printBoard"></p>
答案 0 :(得分:3)
换行符在HTML中大部分时间都不起作用。您需要使用换行符:<br />
,或将所有内容都放入预格式化的元素:<pre></pre>
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/br
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/pre
答案 1 :(得分:1)
HTML中的换行符为<br>
此外,您的内部循环应初始化for (var j = 0; j < board[i].length; j++)
。要了解原因,请考虑数组[[1, 2, 3], [1, 2 ,3]]
。您当前的实现会打印
1 2
1 2
因为board.length为2。