js生成不重复的1到5的4个数字?

JavaScript028

js生成不重复的1到5的4个数字?,第1张

你这写的有点混乱,稍微整理下:

<body>

<div id='odiv'></div>

<script>

var odiv=document.getElementById('odiv')

var num=''

var arr=[] 

/*//这里修改下  

for(var i=0i<4i=i+1){  //生成4个1-5不重复的数字

    var t=Math.floor(Math.random()*5)//生成随机数

    arr.push(t)    //把生成的数字放进这个数组里

}

*/

//修改成这样的:

//定义一个while循环,循环的条件是集合arr的子集少于4个

while(arr.length<4){

  var t=Math.floor(Math.random()*5)//生成随机数

  if(arr.indexOf(t)==-1){

   //如果t在集合arr中存在,indexOf会返回t在集合arr中的位置。

   //如果不存在,indexOf会返回-1

    arr.push(t)    //把生成的数字放进这个数组里

  }

}

for(var i=0i<=arr.lengthi++){

  num=num+(i+1)+':'+arr[t]+'<br/>'

}

odiv.innerHTML=num

/*//上面用到了while循环,并且在内部就直接判断了生成的数字是否在集合中存在

//所以,这里就不需要判断了

function pd(){

  for(var i=0i<arr.lengthi++){

    if(arr[i]===t){

      return true

    }else{

      return false

    }

  }

}

var bol=pd()//比较是否重复

if(bol){

  i--

  continue

}else{

  num=num+(i+1)+':'+t+'<br/>'

}*/

odiv.innerHTML=num

</script>

</body>

把上面不需要的去掉:

<body>

<div id='odiv'></div>

<script>

var odiv=document.getElementById('odiv')

var num=''

var arr=[] 

//修改成这样的:

//定义一个while循环,循环的条件是集合arr的子集少于4个

while(arr.length<4){

  var t=Math.floor(Math.random()*5)//生成随机数

  if(arr.indexOf(t)==-1){

   //如果t在集合arr中存在,indexOf会返回t在集合arr中的位置。

   //如果不存在,indexOf会返回-1

    arr.push(t)    //把生成的数字放进这个数组里

  }

}

for(var i=0i<=arr.lengthi++){

  num=num+(i+1)+':'+arr[t]+'<br/>'

}

odiv.innerHTML=num

</script>

</body>

%   + - * /

% 取余 两个数相除的余数。

++ 自增运算,自增为1,++在前是在自身先加1后进行赋值,如

var a=5;

var b=++a;

所以a自身加1后给b赋值,结果即为a=5;b=5;

++在后是先赋值后再自身加1,已赋值不会受到影响, 如

var a=5;

var b=a++;

a先给b赋值后在自身加1,5+1=6,所以结果是 a=6;b=5;

-- 自减运算,减量为1,

--在前先自身减1后赋值

--在后先赋值后自身减1,

关系运算符

<   >   <=    >=    !=    !==    ==    ===

==只判断数值是否相等,不判断类型。

===既判断数值也判断类型

!=只判断数值是不相等,不判断类型。

!==既判断数值也判断类型

逻辑运算符

&&与   必须同时满足条件才是true,有一不满足就是false。

||或    满足一个条件就是true

!非  取反 

                                                                心态良好

let n = 0

let flag = true

while (n <= 10 || n >= 0) {

if (flag) {

sleep(1000)// 延时函数,单位ms

n++

console.log(n)

} else {

sleep(1000)// 延时函数,单位ms

n--

console.log(n)

}

if (n == 10 || n == 0) {

flag = !flag

}

}