为了账号安全,请及时绑定邮箱和手机立即绑定

js实现随机产生数字抽奖小程序问题 求大神

js实现随机产生数字抽奖小程序问题 求大神

天涯尽头无女友 2018-10-10 13:30:55
目前代码可以实现随机产生数字,我想加一个数组用来保存抽中的号码 下次产生随机数的时候检查数组中是否存在 不存在才能显示在页面,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 算法


查看完整回答
1 反对 回复 2018-11-12
  • 1 回答
  • 0 关注
  • 1049 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信