javascript - 生成随机数javascript

标签 javascript jquery

好吧,伙计们,我在 javascript 函数内的随机数方面遇到了麻烦。我想生成一个包含 3 到 7 个索引或任何你所说的索引的数组。我的意思是像这样 arr[value,value,value] -> arr[value,value,value...]。我已经这么做了。我的主要问题是,当我尝试将此数组的每个值放入另一个数组时,有时最后会得到一个空值。我的意思是,当我打印数组时,有时会得到这个 20,11,17, 。我尝试使用 pop 方法,但当我使用它时,我只得到 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 方法没有完成我之前所说的工作,因此我们将不胜感激。

P.S num.length = 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 in the length of your input array and while fetching random index from that array you need to use array.lenght-1 as index starts from 0. I have made the required modifications in your code.

关于javascript - 生成随机数javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31758327/

相关文章:

javascript - 如何将值数组作为键分配给另一个值数组?

javascript - 将变量传递给 jQuery 单击处理程序

javascript - 在 JavaScript 中删除小数以获得自动结果

php - 文件类型的正则表达式 - jQuery uploader 问题

jquery 选择器

javascript - 布局类似于 google chrome 的 tweetdeck 应用程序

javascript - 拆分选项卡标题不删除事件状态

javascript - 如果数组中已存在 id 则隐藏特定的 ng-option

javascript - 使用 jQuery 查找 previous sibling 元素

javascript - 未捕获( promise 中)提供的元素不在文档内