[英]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.