学习是一个有趣的过程,这不还可以做一个有趣的东西奖励或是惩罚一下自己,今天来写一下普通抽奖和小概率抽奖,平时起不了床的时候就来抽下奖来惩罚自己一下,纠结的时候来抽一下奖来替你做决定。
先来看看普通的抽奖,。
这是一个简单的例子,但是确实很有意思,很久没有出去玩了,。可以让电脑替你决定一下去什么地方玩,。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style> p{ height: 50px; line-height: 50px; } </style> </head> <body> <div>去拉萨 去成都 去丽江 去赤壁</div> <p></p> <script src="js/jquery-3.0.0.js"></script> <button>抽奖</button> <script> var arr = ["去拉萨","去成都","去丽江","去赤壁"]; $("button").click(function(){ var num = Math.floor(Math.random()*arr.length); if(arr.length>0){ $("p").text(arr[num]); arr.splice(num,1); }else{ $("p").text("待在家写代码"); } }) </script> </body> </html>
这里为了方便,插入了3.0.0的jquery,首先在开头我们申明了一个变量,给变量符的值是一个数组,,接着来用$符号获取一下按钮。当点击一下按钮的时候来执行一下函数。这个时候需要获得一下随机数,用Math.random(),记住M一定得是大写,这个房法的到的是一个0到1的随机数,都是小说,为了得到一个整数,来乘一下数组里面的字符的个数,这样每个奖项就都可以获取到一次,所以就执行下一步Math.random()*arr.length,但是这样获得的数依旧不是整数,那这就尴尬了,好吧,再加上Math.floor,将获得的小数变为整数,这个是舍得意思,什么是下舍,举一个简单的例子就好理解了,那就是就算获得的数是3.999,用Math.floor方法也会将它转化为3,。最后是这样的var num = Math.floor(Math.random()*arr.length);将这个随机抽到的整数储存在一个变量num里面,将num作为数组的下标,那这样,就得到了想要的结果了,。
那现在再来做一下美化,就需要判断了,这里用到了.splice(),还不知道这个方法怎么用的可以去百度一下了,最后我还是解释一下这个判断里面的意思,如果数组的长度大于0,那么久获取到P元素,并给p元素天机内容,内容的下标就是num,就是我们随机抽取的一个数字,每点击一次这个数字都会变,因此我们获得的下标内容也会变,。每获得一次奖项,都将此奖项给切掉,arr.splice(num,1);这个就是切掉的方法,。意思是从索引值为num的地方切,切掉一个,也就是切点它本身,那这个切到最后数组的长度就是0了,当是0的时候,那就一直待在家写代码了,。
再来说一声小概率的思路,抽奖的概率总是小的,想要小概率,那怎么办,就让随机数多获取一点,什么意思呢,来看看Math.random()*100,这儿指的是获得的随机数是0-100的整数。这儿用的是var num =Math.ceil(Math.random()*100);Math.ceil()方法,意思是上进的意思,。那我们获得的随机数就是1到100的整数,随机数多了,在给每个奖项设一个随机数的区间,那这样概率是不是就小了,。
直接来看一下js代码,。
<script> var first =1,second=2,third=10; var arr = ["去拉萨","去成都","去丽江","哪儿都不去"]; $("button").click(function(){ var num =Math.ceil(Math.random()*100); if(num==1){ $("p").text(arr[0]); first--; if(first==0){ arr[0]="哪儿都不去"; } }else if(num>1&&num<=3){ $("p").text(arr[1]); second--; if(second==0){ arr[1]="哪儿都不去"; } }else if(num>3&&num<=13){ $("p").text(arr[2]) third--; if(third==0){ arr[2]="哪儿都不去"; } }else{ $("p").text(arr[3]) } }) </script>
首先在开头设置了三个变量,var first =1,second=2,third=10;在看看if else判断里面,每都到一次,都让这个奖项获得的次数自减1,当减到这个奖项只有0个的时候,那么抽到的结果就是那儿都不去了,。这样写最后每一次我们抽奖的概率还是没有变,因为if或者if else里面的判断的区间始终是没有变得,。所以抽奖的概率一直没有变化。
这样就是简单的有意思的抽奖,希望能给大家带来快乐。
美丽的茶卡盐湖,好想再去一次。