簡體   English   中英

如何制作我的 var 的歷史(Math.random)

[英]How to make a history of my var (Math.random)

我的代碼有問題,我想在歷史記錄框中看到我傳遞的 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;


}

有沒有辦法做到這一點?

為什么不創建一個數組,然后在調用Math.random()之后將結果的新值附加到數組中?

var resultHistory = new Array();

var result = Math.random();
resultHistory.push(result);

然后稍后打印出數組。

為什么不只使用數字數組?

 var _history = []; function toHTMLElement(historyNode) { var node = document.createElement("div"); node.innerHTML = historyNode.text; node.style.background = historyNode.win?'green':'red'; return node; } function renderHistory() { var result = document.getElementById("result"); result.innerHTML = ""; _history.forEach(function(e){ result.appendChild(toHTMLElement(e)); }); } document.getElementById("form").addEventListener("submit", function(e){ e.preventDefault(); _history.push((Math.random()>0.5)?{win: true, text: 'You win'}:{win: false, text: 'You lose'}); if (_history.length > 3) _history.shift(); renderHistory(); });
 <form id="form"> <input type="submit"> </form> <div id="result"></div>

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;

}

這仍然給出相同的結果?

我認為實際上改變你的歷史變量的順序應該可以解決它。 將它們更改為

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

現在,您將所有內容覆蓋為結果,因為:

var history1 = 結果 var history2 = history1 (history1 現在已經指的是結果)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM