猿问

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

目前代码可以实现随机产生数字,我想加一个数组用来保存抽中的号码 下次产生随机数的时候检查数组中是否存在 不存在才能显示在页面,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();

}


天涯尽头无女友
浏览 1050回答 1
1回答

烙印99

这个其实很简单假设你们有20个人,先生成一个数组[],数组里面可能存放的是员工号1,然后生成随机范围在 1-20 内的随机数,这个数作为数组的下标,取出这个下标对应的数作为中奖号码,数组内删除这个下标,数组长度变成192,然后生成随机范围在 1-19 内的随机数,这个数作为数组的下标,取出这个下标对应的数作为中奖号码,数组内删除这个下标,数组长度变成18....结束当然这个算法是有名字的 Fisher-Yates shuffle 算法
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答