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);