最近想开发个小项目,其中要用到一个元素不重复的随机数组,就是下面这种数组
Array(16)0: 9 1: 15 2: 11 3: 2 4: 12 5: 3 6: 10 7: 7 8: 13 9: 6 10: 8 11: 4 12: 5 13: 14 14: 1 15: 16
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script type="text/javascript">
let num=[] //定义一个空数组
while(num.length<16){//不断产生随机数字
let ran=Math.floor(Math.random()*16+1)
//Math.floor向上取整,Math.random产生0到1不包含1的随机数
// 比如随机产生一个0.9,0.9*16=14.4,向上取整后就是15,在加1就是16
// 所以上面这个表达式就是求1到16范围内的随机数
if(num.find(x=>x===ran)===undefined){
// 去除重复元素
// find方法,把数组的元素遍历,返回符合的元素,没有返回undefined,
// 这里是如果数组里没有这个新产生的随机数,就把它加入数组
num.push(ran)
}
// if(num.some(x=>x===ran)===false){
// 用some方法也可以达到同样效果,
// 如果有符合条件的元素返回true,没有返回false
// num.push(ran)
// }
}
console.log(num)
</script>
</body>
</html>