我有:
function getRandomInt(min, max){
return Math.floor(Math.random() * (max - min + 1)) + min;
}
但问题是我想随机化数组中元素的数量(因此它们每次在我填充的东西中不会以相同的顺序出现),所以我需要确保返回的数字与到目前为止的其他数字。
所以代替:
for(var i = 0; i < myArray.length; i++) {
}
我有:
var i;
var count = 0;
while(count < myArray.length){
count++;
i = getRandomInt(0, myArray.length); // TODO ensure value is unique
// do stuff with myArray[i];
}
最佳答案
看起来您想要的是集合 {1, 2, 3, ..., N} 的随机排列,而不是独立的均匀随机数。我认为有一个数组的 shuffle
方法可以为您做到这一点。
根据要求,这里是代码示例:
function shuffle(array) {
var top = array.length;
while (top--) {
var current = Math.floor(Math.random() * top);
var tmp = array[current];
array[current] = array[top - 1];
array[top - 1] = tmp;
}
return array;
}
关于javascript - 如何在javascript中为该范围内的每个数字获取特定范围内的唯一随机整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6557436/