【发布时间】:2012-08-19 18:18:48
【问题描述】:
大家好,我知道如何在 Javascript 中使用 Math.random() 生成随机值,但你能告诉我如何随机混合数字吗?
例如我有数字 1,2,3,4,5,6,7,8,9,10 如何像这样随机混合:2,8,9,1...所以每个数字都应该是只用过一次
【问题讨论】:
标签: javascript random numbers
大家好,我知道如何在 Javascript 中使用 Math.random() 生成随机值,但你能告诉我如何随机混合数字吗?
例如我有数字 1,2,3,4,5,6,7,8,9,10 如何像这样随机混合:2,8,9,1...所以每个数字都应该是只用过一次
【问题讨论】:
标签: javascript random numbers
您可以通过将它们全部放在一个数组中并以随机方式对该数组进行排序来做到这一点。
var nrs = [1,2,3,4,5,6,7,8,9,10];
nrs.sort(function(a,b){
return Math.floor(Math.random()*3 - 1);
});
【讨论】:
return 0.5 - Math.random() 而不是 return Math.floor(Math.random()*3 - 1);
var nums = [1,2,3,4,5,6,7,8,9,10], numsMixed = [];
while(nums.length){
numsMixed = numsMixed.concat(nums.splice((Math.random() * nums.length), 1));
}
console.log(numsMixed);
【讨论】: