2007年1月22日星期一

5.12.数组元素的随机排序


5.12. 数组元素的随机排序

问题
我要打乱数组元素的顺序
解决办法
使用 sort( ) 方法和自定义比较函数返回随机的正数或负数
讨论

很多情况我们需要得到一个随机排列的数组,比如有个游戏需要产生随机的字母。
有很多种方法达到这个目的,但是最简单的办法就是创建自定义比较函数,返回随机的正数或负数,把该函数引用传递给sort( ) 方法:
下面的比较函数就能达到目的:
function randomSort(elementA:Object, elementB:Object):Number {
return Math.random( ) - .5
}
Math.random( ) 返回0.0 到 1.0. 减去0.5 ,正好有一半的几率是负数,一半为正数,因此这个数组经过随机排序
看下面的随机排序例子:
var numbers:Array = new Array( );
for(var i:int=0;i<20;i++) {
numbers[i] = i;
}
numbers.sort(randomSort);
for(var i:int=0;i<numbers.length;i++) {
trace(numbers[i]);
}


没有评论: