当前位置:   article > 正文

js用for循环和随机数,随机一个1-9的数组_js随机数 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; //例如 [9, 7,

js随机数 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; //例如 [9, 7, 2, 1],但不能用函数

随机得到[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);
}
  • 1
  • 2
  • 3
  • 4

在这里我们得到了九个随机数,可以通过创建一个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);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

可以得到一个包含九个数的数组,可能有人发现了,这个数组中有重复的数字,那么怎么办呢?这就要用到去判断了,我们先可以通过内置一个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--
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

当然,如果可以的话,内层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);

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/106806
推荐阅读
相关标签
  

闽ICP备14008679号