目前代码可以实现随机产生数字,我想加一个数组用来保存抽中的号码 下次产生随机数的时候检查数组中是否存在 不存在才能显示在页面,js代码如下:var g_Interval = 1;var g_PersonCount = 150;//参加抽奖人数var g_Timer;var running = false;var ary= [];//声明空数组用来保存抽中的号码var num;function beginRndNum(trigger){ if(running){ running = false; clearTimeout(g_Timer); $(trigger).val("开始"); $('#ResultNum').css('color','red'); updateRndNum() console.log(ary); } else{ running = true; $('#ResultNum').css('color','black'); $(trigger).val("停止"); beginTimer(); }}function updateRndNum(){ var num = Math.floor(Math.random()*g_PersonCount+1);//随机生成一个数 ary.push(num); $('#ResultNum').html(num);}function beginTimer(){ g_Timer = setTimeout(beat, g_Interval);}function beat() { g_Timer = setTimeout(beat, g_Interval); updateRndNum();}
1 回答
烙印99
TA贡献1829条经验 获得超13个赞
这个其实很简单
假设你们有20个人,先生成一个数组[],数组里面可能存放的是员工号
1,然后生成随机范围在 1-20 内的随机数,这个数作为数组的下标,取出这个下标对应的数作为中奖号码,数组内删除这个下标,数组长度变成19
2,然后生成随机范围在 1-19 内的随机数,这个数作为数组的下标,取出这个下标对应的数作为中奖号码,数组内删除这个下标,数组长度变成18
....
结束
当然这个算法是有名字的 Fisher-Yates shuffle
算法
添加回答
举报
0/150
提交
取消