所以我的问题是如何调用随机数,但只有10次(当我们得到0到9之间的数字时)有不同的数字。 这是生成随机数的代码:
Math.floor(Math.random() * 10);
但该代码例如可以获得2次,两次。
示例输出:4,3,2,9,4,3,6,3;
如何得到这样的输出:5,3,6,4,1,9,8,2;
这是一个函数:fiddle:但是,数字是随机的,可以重复并反复进行。
那么当数字已经存在时如何替换数字,并在使用所有数字时停止调用变量?!
答案 0 :(得分:2)
对我来说,就像你真的不想要一系列随机数,你想要随机改变一系列非随机数。我就是这样做的:
var nums = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
for(var i = nums.length; i > 0; i--) {
var temp = nums[i - 1];
var swapIndex = Math.floor(Math.random() * i);
nums[i - 1] = nums[swapIndex];
nums[swapIndex] = temp;
}
答案 1 :(得分:2)
你可以试试这样的事情
var limit = 10;
var results = []
function randomGenerator () {
while (results.length < (limit -1)) {
var generated = Math.ceil(Math.random() * limit);
if (results.indexOf(generated) < 0) {
results.push(generated)
}
}
}
randomGenerator()
alert(results)