繁体   English   中英

生成随机数JavaScript

[英]Generate random numbers javascript

好的,伙计们,我在javascript函数中遇到随机数问题。 我想产生一个包含3到7个索引或任何您称之为的数组。 我的意思是像这个arr [value,value,value]-> arr [value,value,value ...]。 我已经做到了。 我的主要问题是,当我尝试将此数组的每个值放入另一个数组时,有时会在末尾得到一个空值。 我的意思是,当我打印数组时,有时会得到20,11,17,。 我尝试使用弹出方法,但是当我使用它时,我只有2个数字,比我所需的最小数字少1个。 请帮忙,我的代码如下

function randGen(num){
            var a = Math.floor((Math.random() * 5) + 3);
            var c = num.length;
            var d;
            var arr = [];
            var mainArr = [];
            for(var b = 0; b < a; b++){
                d = Math.floor(Math.random() * (c+1));
                for(var t = 0; t < arr.length; t++){
                    while(d == arr[t]){
                        d = Math.floor(Math.random() * (c+1));
                    }
                }
                arr.push(d);
            }
            for(var qw = 0; qw < arr.length; qw++){
               mainArr[qw] = num[arr[qw]]; 
            }
            mainArr.sort();

            document.write(mainArr);
        }

 $(function (){       

            var num = [];
            for(var a = 5; a <= 100; a+=5){
                num.push(a);
            }

            randGen(num);

        });

有时结果如下:5,10,25,70,Pop方法没有像我之前所说的那样做,所以任何帮助将不胜感激。

PS numlength = 20;

花了大约一个小时后,我才明白这一点。 尝试这个:

function randGen(num) {
    var a = Math.floor((Math.random() * 5) + 3);
    var c = num.length;
    var d;
    var arr = [];
    var mainArr = [];
    for (var b = 0; b < a; b++) {
        d = Math.floor(Math.random() * (c));
        for (var t = 0; t < arr.length; t++) {
            while (d == arr[t]) {
                d = Math.floor(Math.random() * (c));
            }
        }
        arr.push(d);
    }
    for (var qw = 0; qw < arr.length; qw++) {
        mainArr[qw] = num[arr[qw]];
    }
    mainArr.sort();
    console.log(mainArr);
}
$(function () {
    var num = [];
    for (var a = 5; a <= 100; a += 5) {
        num.push(a);
    }
    randGen(num);
});

输入数组长度中的num.length ,从该数组中获取随机索引时,您需要使用array.lenght-1,因为索引从0开始。我已经在代码中进行了必要的修改。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM