我试图以网格格式打印一个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> 发布于 2018-08-10 07:45:18
在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
发布于 2018-08-10 07:54:15
超文本标记语言中的换行符是<br>
此外,您的内部循环应该初始化为for (var j = 0; j < board[i].length; j++)。要了解原因,请考虑数组[[1, 2, 3], [1, 2 ,3]]。您当前的实现将打印
1 2
1 2因为board.length是2。
http://jsbin.com/focofecadi/1/edit?html,js,console,output
https://stackoverflow.com/questions/51777114
复制相似问题