国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

javascript實現抽獎程序的簡單實例

2019-11-20 09:45:49
字體:
來源:轉載
供稿:網友

昨天開年會的時候看到一個段子說唯品會年會抽獎,結果大獎都被寫抽獎程序的部門得了,CTO現場review代碼。

簡單想了一下抽獎程序的實現,花了十幾分鐘寫了一下,主要用到的知識有數組添加刪除,以及ES5 數組新增的indexOf,filter方法,

為了刷新頁面后仍能保存已中獎記錄,用了localStorage存盤。

剛開始是用隨機數直接取編號,發現要剔除已中獎的人很麻煩,如果重復要遞歸調用,如果中獎的人太多到最后隨機數取到已中獎的人概率太大,所以換用兩個數組實現,一個記錄已中獎的號碼,一個記錄未中獎的號碼,已中獎的從另一個數組剔除就行,就不存在遞歸調用的情況。

具體實現如下:

var start=1,end=20,luckyList=[],futureList=[];//luckyList表示已獲獎的人,futureList表示尚未抽中的人,start,end表示獎券起止編號//先初始化一下所有人員編號的數組for(var i=start;i<=end;i++){futureList.push(i);}//如果刷新了頁面,從localStoreage中恢復if(localStorage.getItem("lucky")){luckyList=localStorage.getItem("lucky").split(",");futureList=futureList.filter(function(item){return luckyList.indexOf(item)==-1;})console.log(futureList)}//抽獎函數,每運行一次,產生一個幸運號碼function raffle(){var num= Math.random()*futureList.length;num=Math.floor(num);var idx=futureList.indexOf(num);var result= futureList.splice(idx,1)[0].toString();luckyList.push(result);localStorage.setItem("lucky",luckyList);console.log("抽獎結果:",result); } //清除localstorge,如果要復位程序執行此函數function clear(){localStorage.setItem("lucky","");}raffle();

以上這篇javascript實現抽獎程序的簡單實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 冷水江市| 长春市| 景洪市| 武宣县| 平泉县| 霸州市| 桑日县| 讷河市| 英超| 乐昌市| 吴堡县| 定南县| 福海县| 固阳县| 泰顺县| 大安市| 年辖:市辖区| 慈利县| 武穴市| 东乡县| 兰西县| 探索| 西峡县| 绍兴县| 阜新| 讷河市| 鄂尔多斯市| 五寨县| 井冈山市| 乐昌市| 高淳县| 诸城市| 阿坝县| 玛沁县| 楚雄市| 白山市| 营山县| 康平县| 连江县| 班戈县| 宁河县|