用math.random打乱一个数组

时间:2011-05-31 08:52:31

标签: javascript arrays random

我的函数调整数组然后返回它不能正常工作,我无法理解为什么。

numbers.sort(function() { return Math.round(Math.random()); } );
return numbers;

这样可行,但数组中的第一项始终相同。

有谁知道为什么?

2 个答案:

答案 0 :(得分:3)

这是无法排序的。您告诉分拣机一个值大于另一个值,而在下一个请求中它可以更小。谁知道wat可能会发生。分拣机可能需要很长时间,表现不佳,或者你可能撕裂构成宇宙的织物。

如果你想对一副牌进行排序,我认为最好循环所有牌并用随机的其他牌交换每张牌。这样,你就可以确保整个牌组只在一次迭代中被甩掉。

答案 1 :(得分:-1)

使用Math.floor()代替Math.round()