zoukankan      html  css  js  c++  java
  • 常用算法1--数组中取不重复的值 和 求最大最小值

    1 示例:随机出四位验证码,数字或字母,或组合,大小写都可以,但四个不能重复

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>验证码1</title>
    </head>
    <body>
    <p>需求:随机出四位验证码,数字或字母,或组合,大小写都可以,但四个不能重复</p>
    	
    <script>
    var code=[];    //待选字符
    var newCode=[]; //四位验证码
    
    //存入0-9数字
    for(var i=0; i<=9; i++){
    	code[i]=i;
    }
    
    //存入小写26个字母
    for(var i=0; i<26; i++){
    	code.push(String.fromCharCode(97+i));
    }
    
    //存入大写26个字母
    for(var i=0; i<26; i++){
    	code.push(String.fromCharCode(65+i));
    }
    
    for(var i=0; i<4; i++){
    	var n=parseInt(Math.random()*code.length);	//随机产生一个数
    	
    	var same=false; //定义一个用来判断是否存在的变量
    	
    	//判断随机取出的是否已经存在了
    	for(var j=0; j<newCode.length; j++){
    		if(newCode[j]==code[n]){
    			same=true;
    			break;
    		}
    	}
    	
    	if(!same){
    		newCode.push(code[n]); //不存在就存入
    	} else{
    		i--;                   //存在,就回退一次
    	}
    }
    
    alert('验证码为:'+newCode.join('')); //数组拼接成字符串
    
    </script>
    
    </body>
    </html>
    

    关键:

    定义一个用来判断是否存在的变量,如果为false,才存入新数组;如果为true,刚回退一次循环。

    判断一个元素是否在数组里,不能在循环里面写,要在外面写。因为没有结束,判断的不是整体。

    2 还是取不重复,用indexOf的方法:

    示例:随机出四位验证码,数字或字母,或组合,大小写都可以,但四个不能重复

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>验证码2</title>
    </head>
    <body>
    <p>需求:随机出四位验证码,数字或字母,或组合,大小写都可以,但四个不能重复</p>
    	
    <script>
    var code=[];    //待选字符
    var newCode=[]; //四位验证码
    
    //存入0-9数字
    for(var i=0; i<=9; i++){
    	code[i]=i;
    }
    
    //存入小写26个字母
    for(var i=0; i<26; i++){
    	code.push(String.fromCharCode(97+i)); //使用ASCII码
    }
    
    //存入大写26个字母
    for(var i=0; i<26; i++){
    	code.push(String.fromCharCode(65+i));
    }
    
    for(var i=0; i<4; i++){
    	var n=parseInt(Math.random()*code.length);	//随机产生一个数
    	
    	//用indexOf判断,如果是-1说明不存在
    	if(newCode.indexOf(code[n])==-1){
    		newCode.push(code[n]);
    	} else{
    		i--; 
    	}	
    }
    
    alert('验证码为:'+newCode.join('')); //数组拼接成字符串
    
    </script>
    
    </body>
    </html>
    

    3 求最大值和最小值

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>求最大最小值</title>
    </head>
    <body>
    	
    <script>
    var arr=[]; //定义一个数组
    var num=5;	//数组的长度
    
    for(var i=0; i<num; i++){
    	arr[i]= +prompt('请输入第'+(i+1)+'个数,共有'+num+'个'); //转化成数值,不然后面没法求和
    }
    
    var max=arr[0],	//定义最大值
    	min=arr[0];	//定义最小值
    
    var sum=0; //求和
    for(var i=0; i<arr.length; i++){
    	if(max<arr[i]){
    		max=arr[i];
    	}
    	
    	if(min>arr[i]){
    		min=arr[i];
    	}
    	sum=sum+arr[i];
    }
    
    alert('最大值为:'+max);
    alert('最小值为:'+min);
    alert('和为:'+sum);
    
    </script>
    
    </body>
    </html>  
  • 相关阅读:
    日期和时间模块
    批处理bat文件dos命令实现文件的解压缩
    批处理bat文件dos命令复制文件
    dos命令临时和永久设置环境变量方法
    [转]NHibernate之旅(13):初探立即加载机制
    [转]NHibernate之旅(12):初探延迟加载机制
    [转]NHibernate之旅(11):探索多对多关系及其关联查询
    [转]NHibernate之旅(10):探索父子(一对多)关联查询
    [转]NHibernate之旅(9):探索父子关系(一对多关系)
    [转]NHibernate之旅(8):巧用组件之依赖对象
  • 原文地址:https://www.cnblogs.com/hzhjxx/p/9681260.html
Copyright © 2011-2022 走看看