9、Math常规用法

Math.round() 四舍五入
Math.floor() 向下取整
Math.ceil() 向上取整
Math.abs() 取绝对值
Math.sqrt() 开平方
Math.pow() 幂次方
Math.max() 取最大值
Math.min() 取最小值
Math.random(); 取到从0-1之间的随机小数,它包前不包后;所以拿不到最大值1;
//需求:拿到100-300之间的随机数;
Math.random()*(300-100)+100 //从0-100之间的随机数,而且不包含100;

//需求2:拿到100-200之间的随机整数,包含200;
Math.round(Math.random()*(200-100)+100);

求随机数公式: 从n-m之间的随机整数
Math.round(Math.random()*(m-n)+n);
//需求1:求0-61之间的4个不重复的随机整数?
    /*思路:
    * 1.建立一个数组,用数组保存拿到的每个随机整数
    * 2.用for循环去取随机整数,取到一个,往数组中放一个;
    * 3.放之前应该检查数组中是否有你,如果有了,这次机会不算;否则,才往数组中放;
    * */
    /*var ary=[];
    for(var i=0; i<4; i++){
        var rnd=Math.round(Math.random()*61);
        if(ary.indexOf(rnd)!==-1){ //说明重复了
            i--; //这次浪费的机会不算;
        }else{ //代表数组中没有重复的;
            ary.push(rnd);
        }
    }
    document.write(ary);*/
    //中午时候,大家尝试用while来实现以上功能;
    /*思路:
    * 1.数组的长度做为判断条件: ary.length<4
    * 2.每次while循环,都需要获取随机整数;
    * 3.数组中没有他的时候,才往数组中放;
    * */
    var ary=[];
    while(ary.length<4){
        //必须得给数组添加;
        var rnd=Math.round(Math.random()*61);
        //数组中没有这个数的时候,才给数组中添加
        if(ary.indexOf(rnd)===-1){ //说明数组中不存在
            ary.push(rnd);
        }
    }
//需求2:4个不重复的随机验证码
    var strCode='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
    var ary=[]; //数组是用来去重的;
    var str=''; //拼接不重复的验证码
    for(var i=0; i<4; i++){
        var rnd=Math.round(Math.random()*61);// 随机整数
        if(ary.indexOf(rnd)!==-1){//验证当前取的随机整数是否在数组中已经存在,若>=0 说明该值在数组中已存在 重复了
            i--; //本轮循环不算数 重新获取随机整数
        }else{
            ary.push(rnd);
            str+=strCode.charAt(rnd);
            //添加当前随机数为索引的值
            //在往数组中放不重复的随机数的时候,我们可以把这个不重复的随机数做为下标,拼接他对应的字符;
        }
    }
    document.write(str);

 

posted @ 2017-08-09 15:54  dalyn  阅读(344)  评论(0编辑  收藏  举报