利用JS实现随机数的生成以及几组随机数的生成

一、首先就是小白一位,刚把Javascript基础学完。大佬勿喷......

二、Html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>随机抽取号码</title>
</head>
<link rel="stylesheet" href="./css/main.css">
<body>
<div id="titleDiv">
    <h1>随机号码抽取</h1>
</div>
<div id="userDiv">
    <ul>
        <li><input type="text" id="beforeNum" placeholder="输入从几开始"></li>
        <li><span>~</span></li>
        <li><input type="text" id="afterNum" placeholder="输入从几结束"></li>
    </ul>
</div>

<br>

<div id="btnDiv">
    <button id="userBtn">生成随机一个范围内数字</button>

    <input type="text" id="userNumArr" placeholder="输入你需要生成几组随机数">

    <button id="userBtnTwo">生成随机几组范围内数字</button>
</div>

<br>

<div id="userArrNum">
    <ul>

    </ul>
</div>


<script src="./js/index.js"></script>
</body>
</html>

三、CSS

*{
    list-style: none;
    text-decoration: none;
    margin: 0;
    padding: 0;
}
#titleDiv{
    display: flex;
    justify-content: center;
    align-items: center;
}
#userDiv{
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
}
#userDiv ul{
    display: flex;
 }
#btnDiv{
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 50px;
}
#userArrNum{
    display: flex;
    justify-content: center;
    align-items: center;
}
#userArrNum ul{
    border: 1px solid black;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: 50px;
}

css均用的是flex布局,gap属性可能不支持某个内核或是IE版本,我也不知道不支持那个......如果您使用时发现两个元素的间距没有拉开,那应该就是不支持gap这个属性了.

四、Javascript 

const btn = document.getElementById('userBtn');
const btnTwo = document.getElementById('userBtnTwo');
const userNumArr = document.getElementById('userNumArr');
const beforeNum = document.getElementById('beforeNum');
const afterNum = document.getElementById('afterNum');
const userDisplayUl = document.querySelectorAll('#userArrNum ul');
const regNum = /^\d+$/;
let userArrNum = [];
let timer;

function randomNum(min, max) {
    const num = Math.floor(Math.random() * (max - min + 1)) + min;
    return num;
}

function userRandomNum(){
    const result = randomNum(+beforeNum.value, +afterNum.value);
    alert('随机的结果是' + result);
}

function arrNum(){
    timer = setInterval(function (){
        const result = randomNum(+beforeNum.value , +afterNum.value);
        userArrNum.push(result);
        if(userArrNum.length >= +userNumArr.value){
            clearInterval(timer);
            let sysArr = userArrNum;
            for(let i = 0;i < sysArr.length;i++){
                let li = document.createElement('li');
                li.innerText = sysArr[i];
                userDisplayUl[0].appendChild(li);
            }
            console.log(sysArr);
        }
    },1);
}

btn.onclick = function () {
    if(!regNum.test(beforeNum.value) && !regNum.test(afterNum.value)){
        alert('您没有输入或是您输入的不是一个数字');
    }else{
        userRandomNum();
    }
};

btnTwo.onclick = function (){
    if(!regNum.test(beforeNum.value) && !regNum.test(afterNum.value)){
        alert('您没有输入或是您输入的不是一个数字');
    }else {
        if(!regNum.test(userNumArr.value)){
            alert('您没有输入或是您输入的不是一个数字');
        }else{
            arrNum();
        }
    }
};

这个实现的方法可能不是最简单的方法,也可能使用过程中会出现好多Bug......但是确实是我自己的一个思路:

首先生成随机数就不用说了floor取整random生成随机数

我觉得最难的应该是在如何生成用户所需的一组随机数里面(也可能是我脑子不太好)

它是用定时器去生成随机数 然后插入数组,下面判断如果大于等于了用户所需的数量,清除掉定时器。然后创建一个把数据等于一个新数组再用for循环遍历出来,新建一个li元素插入到获取的ul元素的dom里面。

这里判断用户输入内容使用的是正则表达式(因为input的value类型是一个字符串,我也不知道有没有别的办法可以去判断字符串是不是一个数字)不过有一说一 正则真好用。嘻嘻!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
### 回答1: 在 HTML 中,可以使用 JavaScript 代码来随机抽取几个人。具体实现步骤如下: 1. 定义一个数组,数组中存放所有需要进行抽取的人员信息。 2. 编写一个函数,函数的作用是从数组中随机抽取几个人,并将抽取的结果返回。 3. 在 HTML 页面中添加一个按钮或触发事件的元素,例如一个“开始抽取”的按钮。 4. 给按钮或触发事件的元素添加事件监听器,当点击该元素时,执行上面编写的抽取函数,并将抽取结果显示在页面上。 注:为了保证抽取的随机性,可以使用 Math.random() 方法生成随机数。例如,使用 Math.random() * arr.length 来生成数组下标的随机数,然后根据该下标从数组中取出随机的人员信息。 总之,利用 JavaScript 可以很方便地实现 HTML 页面中的随机抽取功能,不仅在游戏、抽奖、抽签等方面有应用,也可以用于随机选择受访者等业务需求中。 ### 回答2: 要实现随机抽取几个人的功能,需要通过JavaScript编写代码。首先需要定义一个包含多个人员信息的数组,每个人员信息可以以对象的形式表示,例如: ``` var staffs = [ {name: "张三", age: 25}, {name: "李四", age: 30}, {name: "王五", age: 28}, {name: "赵六", age: 26}, {name: "钱七", age: 35}, ]; ``` 然后,可以通过`Math.random()`函数来生成一个0到1之间的随机数,将其乘以人员总数,取整数部分即可得到一个随机的数组索引值。这里可以用`Math.floor()`函数取整。例如: ``` var randomIndex = Math.floor(Math.random() * staffs.length); ``` 最后就是在页面上展示抽中的人员信息。可以在HTML页面中定义一段空白的区域,如`<div id="result"></div>`,然后在JavaScript中选择这个区域并将抽中的人员信息插入其中,代码如下: ``` var resultDiv = document.getElementById("result"); resultDiv.innerHTML = "恭喜抽中:" + staffs[randomIndex].name; ``` 当然,如果要随机抽取多个人员,可以通过循环的方式重复上述步骤,每次生成一个独立的随机索引值,最终把所有抽中的人员信息组合成一个列表,插入到页面中展示即可。 ### 回答3: 随机抽取几个人的方法有很多种,以下是其中一种方法: 1. 在HTML中添加一些标记,用来标识需要抽取的人员信息。例如,可以使用<span>或<div>标签来表示每个人。 2. 在JavaScript中,使用DOM操作找到所有标记,将其存储在一个数组中。 3. 使用Math对象的随机函数(Math.random())生成一个0到1之间的随机数。 4. 将该随机数乘以数组的长度,然后使用Math.floor()函数舍去小数部分,最终得到一个0到数组长度之间(不包括数组长度)的整数。 5. 使用该整数作为数组下标,从数组中随机取出一个人的信息。 6. 将这个信息显示在页面上,例如使用alert()弹出对话框或将其插入到HTML中的某个元素中。 需要注意的是,这种方法是基于JavaScript的,因此需要在HTML中嵌入JavaScript代码才能实现。此外,由于Math.random()函数的随机性并不是完全均匀的,因此在实际应用中可能需要进行多次随机,取平均值来提高随机性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SpASum

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值