gpt4 book ai didi

javascript - 生成随机数javascript

转载 作者:行者123 更新时间:2023-12-03 09:23:42 24 4
gpt4 key购买 nike

好吧,伙计们,我在 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com