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