随机得到[1,2,3,4,5,6,7,8,9]
1. 随机数:
Math.random()方法,可以随机0-1的数,我们可以使用Mathfloor()包裹进行向下取整;众所周知,随机数公式为:
Math.random()(最大值-最小值)+最小值*
所以最后的随机数产生公式为:
var element = Math.floor(Math.random() * (最大值-最小值) + 最小值);
2. for循环
for (var i = 0; i < 9; i++) {
var element = Math.floor(Math.random() * 9 + 1);
console.log(element);
}
在这里我们得到了九个随机数,可以通过创建一个arr将之存起来
let arr = new Array();
for (var i = 0; i < 9; i++) {
var element = Math.floor(Math.random() * 9 + 1);
arr.push(element);
}
console.log(arr);
可以得到一个包含九个数的数组,可能有人发现了,这个数组中有重复的数字,那么怎么办呢?这就要用到去判断了,我们先可以通过内置一个for循环进行判断,来判断arr中每一个值是否和随机数相等,得到的形式就是这样:
var arr = new Array();
for (var i = 0; i < 9; i++) {
var element = Math.floor(Math.random() * 9 + 1);
for (var j = 0; j <= arr.length; j++) {
if (arr[j]==element) {
break;
}
}
// 判断内层是否是break出来的
if (j == arr.length+1) {
arr.push(element);
}else{
// 如果是Break结束循环,说明有这个值,让i减1再随机一个数
i--
}
}
当然,如果可以的话,内层for循环可以用includes方法代替,if else可以用三目运算代替简化之后就是这样:
var arr = new Array();
for (var i = 0; i < 9; i++) {
var element = Math.floor(Math.random() * 9 + 1);
!arr.includes(element)?arr.push(element):i--
}
console.log(arr);