精华内容
下载资源
问答
  • 随机抽取数字

    2014-04-27 22:15:24
    随机抽取数字
  • jQuery随机抽取数字号代码是一款点击开始随机抽取数字号,可以复位重新抽取数字代码。
  • jQuery在设定范围随机抽取数字
  • <head> <meta charset="utf-8"> <meta name="viewport" content="initial-scale=1.0, ... jQuery在设定范围随机抽取数字代码是一款点击开始随机抽取数字号的随机取号网页特效,可以复位重新抽取数字。
  • 从一个JavaScript数组当中,随机抽取数个元素,构成新数组,要求这些元素不能重复。(即随机获取不重复的数组元素)下面我们来看一下如何实现。方法一:从第二次随机抽取的元素开始,需要将抽取的元素与当前新数组的已...

    从一个JavaScript数组当中,随机抽取数个元素,构成新数组,要求这些元素不能重复。(即随机获取不重复的数组元素)下面我们来看一下如何实现。

    方法一:

    从第二次随机抽取的元素开始,需要将抽取的元素与当前新数组的已抽取元素相比较,如果相同,则重新抽取,并再次执行比较的操作。

    JavaScript代码:var arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];

    var arrNum = [];

    var ranNum = 5;

    for (var i = 0; i 

    arrNum[i] = Math.floor(Math.random() * 10);

    if (i > 0) {

    for (var j = 0; j 

    if (arrNum[j] == arrNum[i]) {

    i--;

    break;

    }

    }

    }

    }

    方法分析:

    在代码编写方面,涉及循环语句和条件语句的多层嵌套,这种方法比较容易想到,但编写复杂度较高,执行效率上来说很低,随着元素的抽取,要比较的次数越来越多,“失败的抽取”概率越来越大,整体效率低下。

    方法2:标记法 / 自定义属性法

    基本实现思路

    当获取新元素时,为该元素添加一个属性标记,再抽取一个元素之后,先判断是否有属性标记,如果已被标记,则说明该元素已被抽取,此时重新抽取。

    JavaScript代码:var arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];

    var ranNum = 5;

    var hash = {};

    var result = [];

    while(ranNum > 0) {

    var ran = Math.floor(Math.random() * arr.length);

    if (!hash[ran]) {

    hash[ran] = 1;

    result.push(ran);

    ranNum--;

    };

    }

    方法分析:

    和第一种方法相比,编写复杂度较低,只需要使用循环语句和条件语句配合即可实现,节省了第一种方法中依次比较的步骤,但依旧存在“失败抽取”的现象,而且失败抽取的概率没有发生任何变化。

    方法三、随用随删

    基本实现思路

    利用splice方法,将抽取到的元素从数组当中删除掉,并利用splice方法返回值,将抽取到的元素存储(push)到结果数组当中。

    JavaScript 代码:var arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];

    var result = [];

    var ranNum = 5;

    for (var i = 0; i 

    var ran = Math.floor(Math.random() * arr.length);

    result.push(arr.splice(ran, 1)[0]);

    };

    方法分析:

    每次抽取只需要进行截取和“抽取元素”的存取即可。并不会有重复的“失败抽取”和比较。

    展开全文
  • <!... ..., maximum-scale=1.0, user-scalable=no" /> ...<script type="text/javascript" src="js/jquery.1.11.3.main.js" > <script type="text/javascript" src="js/main.js" > ...

    html

    <!DOCTYPE html>
    <html>
    
    <head>
    <meta charset="utf-8">
    <meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
    <title>抽号</title>
    <script type="text/javascript" src="js/jquery.1.11.3.main.js" ></script>
    <script type="text/javascript" src="js/main.js" ></script>
    <link rel="stylesheet" type="text/css" href="css/css.css" />
    </head>
    
    <body>
    
    <audio id="myMusic" loop src="img/Hans Zimmer - Up Is Down.mp3" type="audio/mpeg"></audio>
    
    <section>
    	<label>
    		起始值:<input type="number" id="begin" value="1" min="1" max="10000" />
    	</label>
    	<label>
    		结束值:<input type="number" id="end" value="5000" min="1" max="50000" />
    	</label>
    	
    	<div class="showNum" id="showNum">大家好,这是我的抽奖号</div><br />
    	
    	<footer>
    		<button id="resetBtn" class="reset">复 位</button>
    		<button id="beginBtn" class="begin">开 始</button>
    	</footer>
    </section>
    
    </body>
    </html>
    

      css

    @charset "utf-8";
    body{ background-size: cover; background-color: #292929; }
    *{ margin: 0px; padding: 0px; font-family: "微软雅黑"; outline: none;}
    
    section{width: 80%; margin: auto; margin-top: 200px; padding:5% ; border: 1px solid white; text-align: center; border-radius: 10px; background: rgba(255,255,255,0.6);}
    section label{ display: block; line-height: 52px;}
    section label input{ width:60% ; height: 30px; font-size: 24px; padding-left: 10px; color: blueviolet; border-radius: 30px;}
    section footer {display: flex; text-align: center;}
    section footer button{ margin: auto; width:120px ; height: 40px; font-size: 22px; color: white; border: 1px solid white; border-radius: 15px;}
    section footer .reset{margin-right: 16px; background: #8b95d0;}
    section footer .begin{ background: #52d8e8;}
    section .showNum{ height: 70px; line-height: 70px; font-size: 70px; font-weight: bold; color: #363b3c; text-shadow: 0px 2px 4px gray;}
    

      js

    $(document).ready(function(){
    	$(document.body).on('click', '#resetBtn', function(){
    		if(confirm("亲:您确定要复位吗?")){
    			window.location.reload();
    		}
    	});
    
    	var arr = [], mydsq = null;		
    	
    	function RunNumFn(){
    		clearInterval(mydsq);
    		var i = 0;
    		mydsq = window.setInterval(function(){	
    			i++;
    			if(i >= arr.length){
    				i = 0;
    			}
    			$('#showNum').html(arr[i]);
    		}, 8);
    	};
    	
    	$(document.body).on('click', '#beginBtn', function(){
    		var begin = Number($('#begin').val()),
    			end = Number($('#end').val());
    		if(begin < 0){
    			alert("亲:起始值 不能小于 0 哦!");
    			return false;
    		}else if(begin > end){
    			alert("亲:起始值 不能大于 结束值哦!");
    			return false;
    		}
    		else if(end > 50000){
    			alert("亲:结束值 不能大于 50000 哦!");
    			return false;
    		}
    		else{
    			if($(this).text() == '开 始'){
    				document.getElementById("myMusic").play();
    				for(var i = begin; i <= end; i++){
    					arr.push(i);
    				}
    				
    				arr = arr.sort(function(){
    					return Math.random() - 0.5;
    				})
    				
    				RunNumFn();
    				$(this).text('暂 停').css('background', '#8b95d0');
    			}else{
    				document.getElementById("myMusic").pause();
    				clearInterval(mydsq);
    				arr = [];
    				begin = 0;
    				$(this).text('开 始').css('background', '#52d8e8');
    			}
    		}
    	});
    });
    

      效果:

     

    转载于:https://www.cnblogs.com/guangzhou11/p/7647820.html

    展开全文
  • 因为平时在写代码的过程中,有些算法会经常重复写,比如数组去重、数组抽取随机值等!虽然这些不是很难的逻辑,但是每次刚开始遇到需求的时候,还是需要琢磨一些时间才能想出来,所以此文档把这些常见算法的思想...

    前言

    • 因为平时在写代码的过程中,有些算法会经常重复写,比如数组去重、数组抽取随机值等!虽然这些不是很难的逻辑,但是每次刚开始遇到需求的时候,还是需要琢磨一些时间才能想出来,所以此文档把这些常见算法的思想记录下来,以便下次再遇到的时候不会手脚无措了!

    • 这篇文档不考虑es6等语法,也不考虑Array自带的一些过滤方法!

    数组去重

    • 我们这里不考虑数组上的一个自带的过滤算法,比如map、filter等方法!数组去重的关键是需要一个中间数组来存数组来帮助实现数组去重!

    • 方法一:

        var arr = [1,2,3,1,1,1,1];
        function toHeavy(array){
            //这是一个缓存对象,用来实现过滤到重复的数据
            var cache = {};
            //定义一个中间数组,用来实现当容器
            var cacheArr = [];
            for(var i = 0,len = array.length;i<len;i++){
                if(!cache[array[i]]){
                    cacheArr.push(array[i]);
                    cache[array[i]] = array[i];
                };
            };
            return cacheArr;
        };
        arr = toHeavy(arr);//arr ==  [1,2,3]
    • 方法二:
        //其实思想跟第一个差不多
        var arr = [1,2,3,1,1,1,1,1,1];
        function toHeavy(array){
            var cache = [];
            for(var i = 0,len = array.length;i<len;i++){
                //用闭包,防止isHeavy向外部暴露,当然如果用es6的话,可以用let对isHeavy进行声明也能达到同样的目的
                //因为js中没有块级作用域
                (function(){
                    var isHeavy = false;
                    for(var j = 0,_len = cache.length;j<_len;j++){
                        if(cache[j] == array[i]){
                            isHeavy = true;
                            break;
                        };
                    };
                    if(!isHeavy){
                        //如果不是重复的,那么就执行把当前值推送的cache里面
                        cache.push(array[i]);
                    };
                })();
            };
            return cache;
        };
    
        arr = toHeavy(arr);

    最后说一句,现实中的数据肯定不会这么简单,可能会是一个稍微复杂的数据,要给这些数组去重你也不要被吓住,其实原理是一样的,只是你被迷惑了而已!

    在一个数组中随机抽取一部分值

    • 这个算法的关键要使用Math.random,不说了直接上代码:
        var arr = ['小明','小红','小陈','小于','小兰','小法','小p','小张','小镇','小王','傻逼','怂逼'];
    
        function getArr(num,array){
            //num表示要去多少个,它不能大于要取的那个数组的最大长度,如果超过了那么就等于它的长度
            var aLength = array.length;
            if(num>=aLength){
                num = aLength;
            };
            var cacheArr = [];
            //我们用一个数组保存原来的数组
            //记住千万能直接赋值,因为数组是一个引用,这样不能保持原来的数组
            //这里也可以用originArr = array.slice()
            var originArr = (function(){
                var arr = [];
                for(var i = 0,len = array.length;i<len;i++){
                    arr.push(array[i]);
                };
                return arr;
            })();
            for(var i = 0;i<num;i++){
                //array.length不能写成上面的aLength,因为aLength是固定的值,而array.length随着array的改变是自动更新的
                //Math.random() * array.length得到的是一个介于长度和零之间的一个值,包括0但不包含长度值
                //我们算出的是一个浮点值,所以我们必须把它转化成整数
                //因为不能超过最大长度值,所以应该向下取整
                var _index = Math.floor(Math.random() * array.length);
                cacheArr.push(array[_index]);
                //记住一定,取出来之后,一定删除原来位置上的数组值
                //要不然数组更新不了
                array.splice(_index,1);
            };
            //取回原来的数组
            array = originArr;
            console.log(array);
            return cacheArr;
        };
        var brr = getArr(5,arr);

    得到某个区间的字母组成的数组

    • 这里主要应用两个方法,一个字符串的charCodeAt和String上的一个静态方法fromCharCode。其思想主要是:先得到这个区间开头字母和结束字母的数字表示,然后就可以在这个区间内做一个循环,并且得到这个区间字母的数字表示,最后把数字传唤成字母依次push到数组里面返回。直接上代码:
        function getArrForAlphabet(startLetter,endLetter){
            //var regExp = /^[a-zA-Z]$/gi;
            var regExp = new RegExp("^[a-zA-Z]$");
            if(!regExp.test(startLetter) || !regExp.test(endLetter)){
                //console.log(regExp.test(startLetter));
                //console.log(regExp.test(endLetter));
                console.log('请传入字母!');
                return false;
            };
            //i是得到开始字母的数字表示,j得到结束字母的数字表示
            var i = startLetter.charCodeAt(0),j = endLetter.charCodeAt(0);
            //定义一个数组用于取出将来的字母
            var arr = [];
            //这里取<=符号是因为要取出结束的字母
            for(;i<=j;i++){ 
                //fromCharCode是String上的一个静态方法,用于将一个数字转换成对应的字母
                var letter = String.fromCharCode(i);
                arr.push(letter);
            };
            //记得最后返回arr
            return arr;
        };

     

    加Java架构师进阶交流群获取Java工程化、高性能及分布式、高性能、深入浅出。高架构。
    性能调优、Spring,MyBatis,Netty源码分析和大数据等多个知识点高级进阶干货的直播免费学习权限 
    都是大牛带飞 让你少走很多的弯路的 群号是:  558787436 对了 小白勿进 最好是有开发经验 

    注:加群要求

    1、具有工作经验的,面对目前流行的技术不知从何下手,需要突破技术瓶颈的可以加。

    2、在公司待久了,过得很安逸,但跳槽时面试碰壁。需要在短时间内进修、跳槽拿高薪的可以加。

    3、如果没有工作经验,但基础非常扎实,对java工作机制,常用设计思想,常用java开发框架掌握熟练的,可以加。

    4、觉得自己很牛B,一般需求都能搞定。但是所学的知识点没有系统化,很难在技术领域继续突破的可以加。

    5.阿里Java高级大牛直播讲解知识点,分享知识,多年工作经验的梳理和总结,带着大家全面、科学地建立自己的技术体系和技术认知!
     

     

     

    展开全文
  • js 实现 随机抽取彩票

    2010-03-30 14:50:31
    js 实现 随机抽取彩票! 值得下载看看!资源免费,大家分享!!
  • 主要介绍了使用JS编写的随机抽取号码的小程序功能,非常不错,具有参考借鉴价值,需要的朋友可以参考下
  • 输入的数字转化为数组 createArr:function(num){ var hoster=this hoster.totalnum=[] for(var i=1;i<= num;i++){ hoster.totalnum.push(i) } } 随抽随删 choubtn:function(){ // onenum:1,//一...

    输入的数字转化为数组

    createArr:function(num){
    		var hoster=this
    		hoster.totalnum=[]
    		for(var i=1;i<= num;i++){
    			hoster.totalnum.push(i)			
    		}
    	}
    

    随抽随删

    	choubtn:function(){
    //	onenum:1,//一次抽奖抽中人数
    //	totalnum:[],//参与抽奖人数
    		var hoster=this
    		var delArr=[]//被删除元素	
    			for(var i=0;i<hoster.onenum;i++){	
    				var length=hoster.totalnum.length//数组长度
    				if(length>0){
    					var n = Math.floor(Math.random()*length) //随机抽取的索引值
    					delArr.push(hoster.totalnum.splice(n,1)[0]) //在把删除的值放入被删数组
    				}else{
    					alert('请重新输入参与人数')
    					return false
    				}				
    			}
    			console.log('剩余数组:'+hoster.totalnum)	
    			console.log('删除:'+delArr)
    	},
    
    展开全文
  • ="text/javascript" > var str = "" ; for ( var i = 1 ;i < 8 ;i ++ ){ var aa = parseInt(Math.random() * 36 ) + 1 ; str = str + aa + " , " ; } alert(str) script >   ...
  • 码匠 2017-05-14 11:54 HTML5学堂-码匠:从JavaScript数组(Array)中随机抽取不重复的元素,构成新数组(Array),...从一个JavaScript数组当中,随机抽取数个元素,构成新数组,要求这些元素不能重复。(即随
  • 随机选号 <li></li> //js window.onload=function(){ var ul=document.getElementsByClassName('number1')[0]; for (var i = 1; i ; i++) { var li=document.createElement("li"); ...
  • 目前只学会两种简单的方法,帮助大家实现随机抽取0-100之间不重复的10个数,具体内容如下第一种利用数组长度可改写的特点思路:可以从0到100的数用for循环出来放在一个数组中,然后将这100个数利用sort()随机打乱,然后...
  • 功能:随机抽取,抽取到后不会再次出现,关闭网页后再次打开会继续上一次的开始。   原理:利用 Math.random 方法实现随机数生成,随机数 * 数组长度,然后向下取整 ,获得随机数,当作数组下标; 利用 ...
  • 跪求js大神编写一个名为randomNum(num)的js代码,可以从包含1-10这十个数字的数组中随机产生2个互不相同的数字,组成一个数组,并在调用该js代码时返回对应的数字,可以生成如上所示的网页地址,如<a href="1....
  • 要求:arr为一个1至10000的数组,随机抽取5000个不同的数据,放到target数组里,并且arr最后剩下未抽取的数。 ①首先创建一个数组arr包含1-10000的数字 ②打乱顺序数组arr的顺序,然后arr.splice(0,5000)给target...
  • 设置范围数字如:1-100间随意抽取(暂停&开始=空格键),随机取文档,即输入人名随机抽取等功能,背景图片下载后请更换。附源码。效果:操作方便,界面干净,滚动效果。适用:投标 年会 摇号 点名
  • function getImageRandomPosition(){ ...//n为随机出现的0-11之内的数值 for (var i = 0; i < posArray.length; i++) { if (n == posArray[i]) { /*若n和数组里面的数值有重复,立即跳出函数*/ .
  • js 从数组中随机抽取几个元素

    千次阅读 2020-06-19 15:02:57
    function getRandomArr(arr, count) {//随机抽取 var shuffled = arr.slice(0), i = arr.length, min = i - count, temp, index; while (i-- > min) {//打乱数组 index = Math.floor((i + 1) * Math.random...
  • function red(min,max){ return Math.ceil(Math.... //最后随机抽取一个1~16的数字,并添加在数组的最后 var blue=Math.ceil(Math.random()*16); arr.push(blue); return arr; }; console.log(redarr(1,33,6));
  • 方法一:Math.random()方法和Math.floor()方法 创建一个函数,该函数有两个参数,一个参数是我们想要...使用JavaScript的Math.random()方法生成随机字符串 使用JavaScript的Math.floor()方法将其四舍五入并添加到...
  • 下面是一个简单的随机抽取的小案例 点击开始按钮,停止后随机获取一个数字 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <style type=...
  • 从一个JavaScript数组当中,随机抽取数个元素,构成新数组,要求这些元素不能重复。(即随机获取不重复的数组元素)下面我们来看一下如何实现。方法一:从第二次随机抽取的元素开始,需要将抽取的元素与当前新数组的已...
  • 刚开始学习JavaScript,写了一个随机抽取号码的小程序,附上body里的所有代码,供大家参考。本程序可以实现功能如下:1、在文本框中输入抽号最大值2、点击按钮,开始抽号,随机生成1~最大值之间的整数3、已经抽取的...
  • JS生成随机数的数组,并从中随机抽取数据JS生成随机数的数组JS从数组中随机取出数据 JS生成随机数的数组 //获取随机数数组 startcount为起始值 ,maxcount为最大值 function randomArr(startcount, maxcount) { var...
  • js 从一个数组中随机抽取元素

    千次阅读 2020-06-28 11:02:56
    需求 从长度为20的数组中随机取出3个元素,且不能重复 如果使用生成随机数取值的方法 可能会取到重复值 因为随机数可能重复 如果每次生成随机数都记录下来,再取的时候判断是否重复又太过麻烦 可以使用随机打乱数组...
  • <script> // 封装一个随机生成数字的函数 function random(a, b) { var n = Math.round(Math.random() * (a - b) + b); return n; } //=======================...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,012
精华内容 1,604
关键字:

js随机抽取数字