换行符不会串联

时间:2018-08-09 23:40:39

标签: javascript html arrays matrix

我正在尝试以网格格式打印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> 

2 个答案:

答案 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。

http://jsbin.com/focofecadi/1/edit?html,js,console,output