【如何取三个不同的随机数? _数据类型 _表达式和运算符 _函数 _操作DOM 】 | IT修真院·坑乎
问题已收录 如何取三个不同的随机数?
我也踩过这个坑( 17 )
已统计您的踩坑,无需重复点击
回答(6)
数据类型 表达式和运算符 函数 操作DOM
详细描述
截图
代码
编辑于2024-04-20
  • [郑州|荣耀师兄]PM-陈静雯
    3

    方法类似数组乱序,定义一个新的空数组,把原数组中随机取得的元素添加到新的数组中,并且在原数组中删除已经获取的元素,循环三次返回新的数组,数组中就是随机获取的三个不重复的数值。

    function numrandom(){
    var blocks=[0,1,2,3,4,5,6,7,8];
    var newblock=[];
    var runNum=3;
    for(k=0;k<runNum;k++){
    var  ran= Math.round(Math.random() *(blocks.length-1));
    newblock.push(blocks[ran]);
    blocks.splice(ran, 1);
    }
    return newblock;
    }


    编辑于2018-06-29
  • [深圳|结业弟子]JS-钟楚炯
    0

    通过洗牌算法获得不从复的随机数组,也可以使用逻辑判断选取不同的随机数

    编辑于2018-02-23
  • [武汉|荣耀师兄]JS-张智
    0

    可以用洗牌算法,我这里有的是定义一个数组,取一个数放到新数组,把之前的数删掉,然后继续取

    function boxnum() {
    var box = [0, 1, 2, 3, 4, 5, 6, 7, 8];
    var newbox = [];
    var runnam = 3;
    for (k = 0; k < runnam; k++) {
    var ran = Math.round(Math.random() * (box.length - 1));
    newbox.push(box[ran]);
    box.splice(ran, 1);
    };
    console.log(newbox);
    return newbox;
    }


    编辑于2018-09-28
  • [上海|结业弟子]JS-燕赤霞
    0
    var num = new Array();
    for (var i = 0; i < 3; i++) {
    var number = Math.floor(Math.random() * 9);
    if (num.indexOf(number) < 0) {
    num.push(number);
    } else {
    i--;
    }
    }

    这是我做任务一用到的方法

    定义一个数组存数据。

    利用math方法,取出一个0-8的数。

    利用if进行判断,如果符合条件,把数放到数组里。if的判断依据是 indexof方法,如果数组里没有这个数,则返回的值未-1,这样可以避免数值的重复。

    然后利用for循环取出三个数,放到数组中。

    编辑于2018-10-05
  • [北京|结业弟子]JS-肖明明
    0

    var N = 9;

    //随机选择盒子

    function selectBox() {

        var arr = [0, 1, 2, 3, 4, 5, 6, 7, 8,];

        var ranNum = N;

        result = [];

        for (var i = 0; i < ranNum; i++) {

            var ran = Math.floor(Math.random() * (arr.length - i))

            result.push(arr.splice(arr[ran], 1)[0]);

        }

    }

    参考:https://blog.csdn.net/u011277123/article/details/72468002

    编辑于2019-06-11
  • [武汉|结业弟子]JS-刘平
    0

    使用math对象中的random()方法,一般也会结合floor()方法一起使用,因为random()方法取到的随机数是小数,floor()是向上取整

    编辑于2019-11-11