1

因此,让我首先说我对 Javascript 没有太多经验。如果有人能给我一个基本的解释,那就太好了。

无论如何,我想获取一个二维矩阵并将其打印在屏幕上。到目前为止,这是我的代码:

function matrixToString(arr) {
returnString = "";
for (var i = 0; i < arr.length; i++){
    for (var j = 0; j < arr[i].length; j++){
        returnString += Math.round(arr[i][j]*10000)/10000 + ' ';
    }
    returnString += "\n";
}
    return returnString

}

所以当我打电话时alert(matrixToString(n)),它按预期工作。但是,当我使用 时document.write(matrixToString(n)),它基本上将所有内容放在一行上并打印该行。如果我将字符串放入 div 并附加 div,这同样适用。

我想我的问题基本上是如何在 javascript 中将多行输出放到 HTML 中。

4

3 回答 3

0

document.write is outdated and hence try directly manipulate DOM.

For example:

<div id="demo"></div>

JS:

document.getElementById('demo').innerHTML = matrixToString(n);

Also with reference to this answer,

It depends on what you're doing with the text, but my guess is you're rendering it as Html. In that case, you should be using a <br /> tag instead of a \n.

so use returnString += "<br />"; to solve your problem.

于 2013-11-11T05:43:53.337 回答
0

您的多行需求仅用于演示目的吗?如果是这样,那么您只需要在
每行的末尾添加 ' '。'\n' 在呈现 HTML 时不起作用。相反,只需替换:

returnString += "\n";

returnString += "<br/>";
于 2013-11-11T05:49:09.590 回答
0

在你的代码中,只需像这样用“br”替换\n

function matrixToString(arr) {
returnString = "";
for (var i = 0; i < arr.length; i++){
    for (var j = 0; j < arr[i].length; j++){
        returnString += Math.round(arr[i][j]*10000)/10000 + ' ';
    }
    returnString += "<br>";
}
    return returnString

}

这适用于我的情况

于 2013-11-11T05:47:29.803 回答