簡體   English   中英

如何使陣列每次運行都能選擇不同的選擇?

[英]How can I make my array choose different choices each time it runs?

現在,我有一個包含三個選項的數組。 我設置了一個函數,因此每次都選擇一個選項,但有時會重復輸出。 我該如何編碼,以便同一顏色不會連續重復兩次?

<!DOCTYPEhtml>
<html>
<head>
    <meta charset="utf-8"/>
    <title>Tester</title>
    <script type="text/javascript">

        var colors = ['#ce0e0e', '#079b0c', '#3e3fd6'];

        function changeColor(){
            var randomColor = colors[Math.floor(Math.random() * colors.length)];
            while (myDiv.style.backgroundColor == randomColor)
                randomColor = colors[Math.floor(Math.random() * colors.length)];

            myDiv.style.backgroundColor = randomColor;
        }
    </script>
    <style>
        .divClass {
            width:300px;
            height:300px;
            border: 1px solid black;
            border-radius:1000px;
            background-color:transparent;
        }
    </style>
</head>
<body>

    <div class=divClass id="myDiv" style="border:6px solid black;">
    </div>

    <input id=button type=button value="chagne color" onclick='changeColor()'>

</body>
</html>

我嘗試使用unique = true,但這似乎沒有用。

<script type="text/javascript">

        var colors = ['#ce0e0e', '#079b0c', '#3e3fd6'];
        var old;

        function changeColor(){

            var randomColor = colors[Math.floor(Math.random() * colors.length)];
            if(old){

                if(old !== randomColor){


                    myDiv.style.backgroundColor = randomColor;
                    old = randomColor;
                } else {
                    setTimeout(changeColor,300);
                }
            } else {
                myDiv.style.backgroundColor = randomColor;
                old = randomColor;



            }
        }
    </script>

他們現在不再重復。 “舊”保留第一次/上一次點擊的價值。 如果獲得相同的值,則重新啟動功能,直到功能更改為止。

50次以上的點擊,絕不會兩次出現相同的顏色

var color = colors[Math.floor(Math.random() * colors.length)];    
function changeColor(){ 
        var newColor = colors[Math.floor(Math.random() * colors.length)];
        if(newColor==color){
          changeColor();
        } else {
          color = newColor;
          myDiv.style.backgroundColor = color;
        }
    }

您應該使用遞歸函數

暫無
暫無

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

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