随机值与上一次不重复

121 阅读1分钟

点击按钮输出一个随机值,将随机值作为数组下标获取图片,若两次得到的随机值相同,则会产生没有点击效果的感觉。

<div>
        <img src="" alt="" width="200px">
        <button>switch</button>
    </div>
//定义随机数函数
function getRandom(min, max) {
        return parseInt(Math.random() * (max - min + 1) + min)
    }
    
//定义按钮的点击事件
    btn.onclick = function () {
        var key = getRandom(0, arr.length - 1)
        // while (choiceKey == key) {
        //     key = getRandom(0, arr.length - 1)
        // }
        // choiceKey = key
        console.log(key);
    }

可能随机到与上一次相同的值 2.17.10.28.gif

在点击事件中加入whlie循环

    var arr = ["a", "b", "c", "d", "e"]
    var btn = document.querySelector('button')
    // 定义一个变量,初始值与数组中下标不重合,若与数组内下标重合,则第一次必定随机不到该下标对应的值
    // eg: 若定义为0,且随后key随机到0,则满足while循环条件,key再一次进行随机,且不为0时退出循环,故第一次随机时key不可能为0
    var choiceKey = -1
    
    btn.onclick = function () {
        var key = getRandom(0, arr.length - 1)
         while (choiceKey == key) {
             key = getRandom(0, arr.length - 1)
         }
         choiceKey = key
        console.log(key);
    }

2.17.10.52.gif