Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/430.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何生成随机数而不包含一组数字?_Javascript - Fatal编程技术网

Javascript 如何生成随机数而不包含一组数字?

Javascript 如何生成随机数而不包含一组数字?,javascript,Javascript,我只是想从1到25生成8个随机数。我的问题是我已经有了一个变量,它的值是14,我的问题是如何生成从1到25的随机数,如果其中一个等于14,那么用另一个随机数替换它?最后,我想在数组中有8个随机数,但我不想在其中包含14个。有谁能告诉我我遗漏了什么,或者如何让这更准确?有时候我的数组中只有7个元素,有人知道为什么吗 这是我的密码: var arr=[]; var currentvar=14; 对于(变量i=0;i

我只是想从1到25生成8个随机数。我的问题是我已经有了一个变量,它的值是14,我的问题是如何生成从1到25的随机数,如果其中一个等于14,那么用另一个随机数替换它?最后,我想在数组中有8个随机数,但我不想在其中包含14个。有谁能告诉我我遗漏了什么,或者如何让这更准确?有时候我的数组中只有7个元素,有人知道为什么吗

这是我的密码:

var arr=[];
var currentvar=14;
对于(变量i=0;i<9;i++){
var num=Math.floor(Math.random()*25)+1;
如果(num==currentvar){
num=Math.floor(Math.random()*25)+1;
}否则{
arr.push(num);
}
}

控制台日志(arr)更仔细地研究您实现的逻辑。您正好经历了9次循环(不是8次),并且由于
if…else
控制流,每个迭代的结果都是互斥的

如果
num
等于
currentvar
(您应该通过从第二次赋值中删除
var
来正确地执行此操作),则重新赋值
num
,或者将其添加到数组中,决不能在一次迭代中同时进行。这就是
else
的意思,您可能希望
do…while
循环分配
num
,直到它不等于
currentvar

var arr=[];
var currentvar=14;
var-num;
对于(变量i=0;i<8;i++){
做{
num=Math.floor(Math.random()*25)+1;
}而(num==currentvar);
arr.push(num);
}

控制台日志(arr)你不在乎你可能有其他重复的值吗?@kaido是的,我不希望我的表中有重复的数字array@progx关于在给定的数字范围内生成唯一的随机值,有很多方法。我想指出,这不是你最初问的问题。