分享一个双色球出号器,算是最简单的思路了,不喜勿喷。
JS端
步骤一
第一段函数是为了实现从32个数中随机抽取数字,为了使这些数字不重复,开始的时候设置一个集合。从而判断集合长度,根据集合过后的长度,判断是否随机抽满32个不相同的数。
//
function randomNumX() {
let randomNum = new Set();//申明一个空集合,从而使新增的随机数加入这个集合中,达到去重的目的
let masterkey = true;
while (masterkey) {
randomNum.add(parseInt(Math.random() * (32)) + 1);
if (randomNum.size >= 32) {//根据判断集合的长度,限制随机数取出的数在集合中为32个不重复的数
masterkey = false;//当满足if条件时,masterkey等于false用于取消循环
}
}
return randomNum;
}
步骤二:设置随机数过后,开始构造将各随机数打印入HTML端界面的函数。
由于上一个函数中,会返回一个键名为randomNum的集合,所以在第二个函数中应该讲该集合转换为数组,便于使用
function randomRedBallNumber() {
let arrxxx = randomNumX();
let arr = [...arrxxx];//将集合转换为数组,使用arr变量接收该数组
// 各红球取随机数,加载入页面中
let str1 = arr.splice(0, 1);//从arr数组中取一个数,删除原位置
//获取第一个p元素,并将从arr数组中取出的数,加入其中
document.getElementsByTagName(`p`)[0].innerText = str1;
let str2 = arr.splice(0, 1);
document.getElementsByTagName(`p`)[1].innerText = str2;
let str3 = arr.splice(0, 1);
document.getElementsByTagName(`p`)[2].innerText = str3;
let str4 = arr.splice(0, 1);
document.getElementsByTagName(`p`)[3].innerText = str4;
let str5 = arr.splice(0, 1);
document.getElementsByTagName(`p`)[4].innerText = str5;
let str6 = arr.splice(0, 1);
document.getElementsByTagName(`p`)[5].innerText = str6;
}
此时可完成基本生成功能,为了使界面更完善,我们加入时间函数
步骤三:生成新的时间函数将步骤二的函数带入其中,成为回调函数。
let timing;
let delEle=document.getElementsByTagName(`input`);
function startOne() {
delEle[0].disabled=true;
timing = setInterval(randomRedBallNumber, 100);
}
function endOne() {
delEle[0].disabled=false;
clearInterval(timing);
}