var numbers = new Array('1','2','4','5','6','7','8','9','10');
我有一个JavaScript数组,现在想从中随机选择四个不同的数字然后在页面上表达(通过document.write
)。显然,每次用户重新加载页面时,它都会显示四个不同的随机数。
答案 0 :(得分:55)
您可以随机播放阵列并选择前四个。
numbers.sort( function() { return 0.5 - Math.random() } );
现在numbers[0]
,numbers[1]
...等具有随机且唯一的元素。
请注意,此方法可能不是改组数组的最佳方法:请参阅Is it correct to use JavaScript Array.sort() method for shuffling?进行讨论。
答案 1 :(得分:21)
如果你想让它像JavaScript的Math.random()
的本机实现一样随机,你可以使用类似下面这样的东西,这样做的好处是保持原始数组不受影响,只有随机化数组根据需要:
function getRandomArrayElements(arr, count) {
var shuffled = arr.slice(0), i = arr.length, min = i - count, temp, index;
while (i-- > min) {
index = Math.floor((i + 1) * Math.random());
temp = shuffled[index];
shuffled[index] = shuffled[i];
shuffled[i] = temp;
}
return shuffled.slice(min);
}
var numbers = ['1','2','4','5','6','7','8','9','10'];
alert( getRandomArrayElements(numbers, 4) );
答案 2 :(得分:3)
//return a random integer between 0 and 10
document.write(Math.floor(Math.random()*11));
答案 3 :(得分:3)
var numbers = new Array('1','2','4','5','6','7','8','9','10');
document.write(numbers[Math.floor(Math.random()*numbers.length)]);