我的javascript代码只打印一行.我需要它打印10行20个字符.

GiB*_* 09 1 javascript

这是一个翻转随机发生器的硬币.我需要打印出10行和20列.这是我被困的地方.我的代码似乎每次单击我的按钮时都是正确的随机化,它显示20列,但我似乎无法打印第二行.这可能是一件简单的事情,我只是没有抓住.任何事情都会受到赞赏.

Javascript代码

function toss()
{
var heads = "x ";
var tails = "o ";
var rows = 0;
while(rows < 10)
{   
    var arr = new Array(20);
    for(var i = 0; i < arr.length; i++)
    {       
        var val = Math.floor( Math.random() * 2 );
        if(val === 1)
        {
            arr[i] = " x";
        }
        else
        {
            arr[i] = " y";
        }   
        document.getElementById("results").innerHTML = arr + "<br />";
    }
    delete arr;
    rows++
}
}
Run Code Online (Sandbox Code Playgroud)

HTML:

<html>
<head>
<title>Coin Flip</title>
<script src="Toss.js" type="text/Javascript"></script>
<style>
#results
{
    display: block;
}
</style>
</head>

<body>
Push Button to Flip -> <input type="button" onclick="toss()" value=" Flip ">
<span id="results"></span>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

Cym*_*men 5

问题是,每次使用新行创建行时,您都要替换整个结果输出.你需要追加而不是替换.所以改变这个:

document.getElementById("results").innerHTML = arr + "<br />";

至:

document.getElementById("results").innerHTML += arr + "<br />";

您还需要将结果的追加移出内部for循环!如果你在for循环中留下追加,你会看到这种行为:http://jsfiddle.net/t1s93Lqz/3/

JSFiddle:http://jsfiddle.net/t1s93Lqz/2/