好的,伙计们我在javascript函数中遇到随机数问题。我想生成一个包含3到7个索引或任何你称之为的数组。我的意思是这样的arr [价值,价值,价值] - > ARR [值,值,值...]。我已经这样做了。我的主要问题是,当我尝试将此数组的每个值放到另一个数组时,我有时会在结尾处得到一个空值。我的意思是当我打印数组时,我有时会得到这个20,11,17 ,.我尝试使用pop方法但是当我使用它时我只有2个数字,比我需要的最小数字少1。请帮忙,我的代码在下面
slice
有时结果如下:5,10,25,70, Pop方法没有像我之前所说的那样完成工作,所以任何帮助都会非常感激。
P.S num.length = 20;
答案 0 :(得分: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));
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开始。我已在您的代码中进行了必要的修改。