是我自己做的练习,代码是运行起来的,但是感觉怪怪的,hhhh, 做个备忘笔记吧~ js文件
题目:十秒之内每秒返回一个不重复的四位随机数,每一位都在0~60之内
<!-------------------------------------------方法1---------------------------------------------------------------->
let i=1;
let t1=setInterval(() => {
var arr=[];
for(var b=0,c=0;b<4;b++){ //生成四位随机数
let a=Math.floor(Math.random()*60);
//console.log(a); //查看重复数字
for(let d=0;d<arr.length;d++){
if(a===arr[d]){ //重复数字不执行
c++;
console.log(1111111);
return ; //一旦有重复,arr[b]=a不执行,4个数字重新取
// break; // 一旦有重复,打印1111,arr[b]=a会执行,但是重复数字会推进数组,
// continue; // 一旦有重复,打印1111,arr[b]=a会执行,但是重复数字会推进数组,
}
}
//console.log(b);
arr[b]=a; //把随机数推进数组 //不执行*****
// console.log(arr)
}
console.log(i); //循环到第几次
console.log(arr);
i++;
if(i>10){clearInterval(t1)}
}, 1000);
<!-------------------------------------------方法2---------------------------------------------------------------->
//十秒之内每秒返回一个不重复的四位随机数,每一位都在0~60之内
let i=1;
let t1=setInterval(() => {
var arr=[];
function four(){ //封装函数
var num=Math.floor(Math.random()*60);
if(arr.indexOf(num)==-1){
//indexof 查找字符串对应下标,start开始查找下标,为空,表示从1开始,找不到返回-1
//数据也适用,不过区分大小写,以及数据类型,字符串,数字
arr.push(num);
}
// console.log(arr);
if(arr.length<4){ //随机生成4个随机数
four(); //函数自调用 调用次数(数组长度)小于4,0-1-2-3,共4次
}
}
four(); //调用函数
console.log(i); //循坏到第几次
console.log(arr);
i++;
if(i>10){clearInterval(t1)} //循环10次结束定时器
}, 1000); //每秒循环一次
结束
欢迎各位大神提出建议