js生成一组指定范围内不重复的随机数(双色球)

实现效果

如图所示的页面:
在这里插入图片描述
单击页面上的“机选”按钮,则生成一注双色球彩票号码,并弹出显示结果,效果如图所示:
在这里插入图片描述
规则说明:
其中,双色球彩票号码的规则为:
1、红色球:从“1”到“33”中(包含1和33),随机选择出6个数字作为红色球的号码,且这6个数字不能重复;
2、蓝色球:从“1”到“16”中(包含1和16),随机选择一个数字作为蓝色球;
3、7个数字合到一起作为一注双色球彩票的号码。
图中显示的彩票号码中,前 6 个数字为红色球号码(要求按照数值大小升序排列),竖线后的数字为蓝色球号码。

完整代码

html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>双色球</title>
    <script language="javascript" src="ssq.js" type="text/javascript">
    </script>
</head>
<body>
    <form>
        <div style="text-align: center; color: red;"><h2>彩票双色球生成器</h2></div>
        <div style="text-align: center"><input type="button" value="机选" style=" background-color: yellow; color: red;" onclick="doubleBall();"/></div>
    </form>
</body>
</html>

js

//随机数,包含下限,不包含上限
function randomNumber(min, max) {
    
    
    var n = Math.floor(Math.random() * (max - min)) + min;
    return n;
}
function doubleBall() {
    
    
    //声明一个数组,用于存放结果
    var result = new Array();
    //先产生6个红球
    var i = 0;
    while (i < 6) {
    
    
        //先生成一个1到33之间的号码
        var curCode = randomNumber(1, 34);
        //判断该号码是否出现过
        var isHas = false;
        for (var j = 0; j < result.length; j++) {
    
    
            if (result[j] == curCode) {
    
    
                isHas = true;
                break;
            }
        }
        //没有出现过,则加入且计数器加1
        if (!isHas) {
    
    
            result.push(curCode);
            i++;
        }
    }
    //产生完6个红球后,先排序,再产生一个蓝球
    var sortFunc = function (a, b) {
    
    
        return a - b;

    };
    result.sort(sortFunc);
    var info = result.toString();
    var blueBall = randomNumber(1, 17);
    //返回结果
    alert(info + " | " + blueBall);
}


猜你喜欢

转载自blog.csdn.net/weixin_44226883/article/details/118307518