在javascript中生成10个介于1到10之间的唯一随机数
Generate 10 Unique Random Numbers between 1 to 10 in javascript
我的确切要求是随机返回从1到2000的所有数字,并且不应该重复一个数字两次。所以我们可以说如果我有
function generateRnNumber(){
var arr = [1,2,3,4,5,6,7,8,9,10,...2000];
randomNumber = Math.floor((Math.random()*2000));
return randomNUmber;
}
因此,如果我调用generateNumber,它是一个以前没有返回的介于1-2000之间的数字,或者是一个唯一的数字,所以如果我调用2000次,我应该得到所有的数字,但按随机顺序。我不想保留一个包含2000个元素的数组。请帮我写这个函数。
保留一个包含所有可能值的数组并随机化顺序。当您需要一个随机值时,弹出数组(删除值"可能值"-数组)。
否则,您无论如何都需要一个数组来保存"获取"的值,所以我认为您无法保留"值范围"大小的数组。
您可以像这样打乱数组:
function shuffle(o){
for(var j, x, i = o.length; i; j = Math.floor(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x);
return o;
};
用法:
var myArray = [];
for(var i = 1; i <= 2000; i++) {
myArray.push(i);
}
var randomArray = shuffle(myArray).splice(0, 10); // an array with 10 random numbers varrying from 1-2000
来源:如何洗牌数组?
相关文章:
- 如何在javascript中生成任意四个数字之间的随机数
- 介于 0 - 8 之间的随机数 JavaScript
- 在一个区间之间生成两个随机数组
- 如何在 1-10 之间生成 4 个随机数并宣布一个获胜者(Javascript)
- 数学随机数介于 50 和 80 之间
- JavaScript:Math.random:如何选择190和255之间的随机数“;不均匀”;,而不是“;“均匀”;
- 在javascript中生成10个介于1到10之间的唯一随机数
- 每秒生成0到100之间的递增随机数,其中新数应大于前一个nymber
- 用JavaScript创建一个介于-100和100之间的随机数
- 不同浏览器之间的随机数
- 生成随机数而不重复,同时保持页面之间的转换
- JavaScript 随机数介于 15 和 225 之间,增量为 30
- 如何在1到9999之间创建100个4位数的随机数,并将数字排成10行,每行10个数字
- 生成介于 0 和“x”之间的唯一随机数(整数)
- 在两组值之间生成随机数的最佳方式
- 如何在2个值之间生成随机数
- 在javascript中获取400到480之间的随机数
- Faker.js 2个值之间的随机数
- 没有重复的随机数,并且彼此之间有范围
- 随机数在1到49之间的有序列表