Javascript 如何创建我的var(Math.random)的历史记录

Javascript 如何创建我的var(Math.random)的历史记录,javascript,html,Javascript,Html,我的代码有问题,我想在历史记录框上看到我传递的4个生成的数字(Math.random),但这些数字显示的是相同的。有没有办法延迟var 我已经试着将var整理好,但这不会造成延迟 我的html: <div class="text-position-history"> <div class="text-style-history"> <p id="historyT"></p> </

我的代码有问题,我想在历史记录框上看到我传递的4个生成的数字(Math.random),但这些数字显示的是相同的。有没有办法延迟var

我已经试着将var整理好,但这不会造成延迟

我的html:

    <div class="text-position-history">
        <div class="text-style-history">
            <p id="historyT"></p>
        </div>
    </div>

</body>

</html>

我的javascript:

var green = 0;
var red = 0;

function odds(){

    var result = Math.random();

    if (result < 0.5)
    {
        document.body.style.backgroundColor = "green";
        green++;
        document.getElementById('greenT').innerHTML = "Times you survived: " + " " + green;

    }
    else{
        document.body.style.backgroundColor = "red";
        red++;
        document.getElementById('redT').innerHTML = "Times you died: " + " " + red;
    }

    document.getElementById('resultT').innerHTML = "Guessed number: " + " " + result;

    var history1 = result;
    var history2 = history1;
    var history3 = history2;

    document.getElementById('historyT').innerHTML = "Guessed number: " + " " + result + " " + history1 + " " + history2 + " " + history3;


}
var绿色=0;
var-red=0;
函数赔率(){
var result=Math.random();
如果(结果<0.5)
{
document.body.style.backgroundColor=“绿色”;
绿色++;
document.getElementById('greenT').innerHTML=“生存的次数:”+“”+green;
}
否则{
document.body.style.backgroundColor=“红色”;
红色++;
document.getElementById('redT').innerHTML=“死亡次数:”+“+red;
}
document.getElementById('resultT').innerHTML=“猜测的数字:”+”+结果;
var history1=结果;
var history2=history1;
var history3=history2;
document.getElementById('historyT').innerHTML=“猜测的数字:”+“”+result+“”+history1+“”+history2+“”+history3;
}

有办法做到这一点吗?

为什么不创建一个数组,然后在调用
Math.random()
后将结果的新值附加到数组中


然后稍后打印出数组。

我认为实际上更改历史变量的顺序应该可以解决这个问题。 换成

    var history3 = history2;
    var history2 = history1;
  var history1 = result;

现在,您正在覆盖所有结果,因为:

var history1=结果
var history2=history1(history1现在已经在引用结果)

为什么不使用数字数组呢

var_history=[];
函数到HTMLElement(historyNode)
{
var节点=document.createElement(“div”);
node.innerHTML=historyNode.text;
node.style.background=historyNode.win?'green':'red';
返回节点;
}
函数renderHistory()
{
var result=document.getElementById(“结果”);
result.innerHTML=“”;
_历史。forEach(函数(e){
结果:appendChild(toHTMLElement(e));
});
}
document.getElementById(“表单”).addEventListener(“提交”,函数(e){
e、 预防默认值();
_history.push((Math.random()>0.5)?{win:true,text:'You win'}:{win:false,text:'You lose'});
如果(_history.length>3)_history.shift();
renderHistory();
});

var绿色=0;
var-red=0;
函数赔率(){
var result=Math.random();
如果(结果<0.5)
{
document.body.style.backgroundColor=“绿色”;
绿色++;
document.getElementById('greenT').innerHTML=“生存的次数:”+“”+green;
}
否则{
document.body.style.backgroundColor=“红色”;
红色++;
document.getElementById('redT').innerHTML=“死亡次数:”+“+red;
}
document.getElementById('resultT').innerHTML=“猜测的数字:”+”+结果;
var myList=[result,result,result];
var history1=myList.shift();
var history2=myList.shift();
var history3=myList.shift();
document.getElementById('historyT').innerHTML=“猜测的数字R:”+“+history1+”+history2+”+history3;
}

这仍然会产生相同的结果?

您必须维护一个值数组<代码>变量历史1=结果将只为itNope分配相同的值。那不能解决任何问题。这将分配未定义的
    var history3 = history2;
    var history2 = history1;
  var history1 = result;

var green = 0;
var red = 0;

function odds(){

    var result = Math.random();

    if (result < 0.5)
    {
        document.body.style.backgroundColor = "green";
        green++;
        document.getElementById('greenT').innerHTML = "Times you survived: " + " " + green;

    }
    else{
        document.body.style.backgroundColor = "red";
        red++;
        document.getElementById('redT').innerHTML = "Times you died: " + " " + red;
    }

    document.getElementById('resultT').innerHTML = "Guessed number: " + " " + result;

    var myList = [result, result, result];

    var history1 = myList.shift();

    var history2 = myList.shift();

    var history3 = myList.shift();

    document.getElementById('historyT').innerHTML = "Guessed numbesr: " + " " + history1 + " " + history2 + " " + history3;

}