发现flash中好像没有对数组元素进行随机排序的函数, 就自己写了一个. 虽然不是很科学, 起码可以用...
- -!
调用方法: randomOrder (array)
函数会返回一个新数组, 就是该数组随机排序后的结果
例子:
- -!
调用方法: randomOrder (array)
函数会返回一个新数组, 就是该数组随机排序后的结果
例子:
程序代码
var myArray
:
Array
=
[
"a"
,
"b"
,
"c"
,
"d"
]
myArray = randomOrder (myArray )
myArray = randomOrder (myArray )
程序代码
//随机改变数组的排序
function randomOrder (targetArray : Array ) : Array
{
var arrayLength : Number = targetArray . length
//
//先创建一个正常顺序的数组
var tempArray1 : Array = [ ]
for ( var i = 0 ; i < arrayLength ; i + + )
{
tempArray1 [i ] = i
}
//
//再根据上一个数组创建一个随机乱序的数组
var tempArray2 : Array = [ ]
for ( var i = 0 ; i < arrayLength ; i + + )
{
//从正常顺序数组中随机抽出元素
tempArray2 [i ] = tempArray1 . splice ( Math . floor ( Math . random ( ) * tempArray1 . length ) , 1 )
}
//
//最后创建一个临时数组存储 根据上一个乱序的数组从targetArray中取得数据
var tempArray3 : Array = [ ]
for ( var i = 0 ; i < arrayLength ; i + + )
{
tempArray3 [i ] = targetArray [tempArray2 [i ] ]
}
//
//返回最后得出的数组
return tempArray3
}
function randomOrder (targetArray : Array ) : Array
{
var arrayLength : Number = targetArray . length
//
//先创建一个正常顺序的数组
var tempArray1 : Array = [ ]
for ( var i = 0 ; i < arrayLength ; i + + )
{
tempArray1 [i ] = i
}
//
//再根据上一个数组创建一个随机乱序的数组
var tempArray2 : Array = [ ]
for ( var i = 0 ; i < arrayLength ; i + + )
{
//从正常顺序数组中随机抽出元素
tempArray2 [i ] = tempArray1 . splice ( Math . floor ( Math . random ( ) * tempArray1 . length ) , 1 )
}
//
//最后创建一个临时数组存储 根据上一个乱序的数组从targetArray中取得数据
var tempArray3 : Array = [ ]
for ( var i = 0 ; i < arrayLength ; i + + )
{
tempArray3 [i ] = targetArray [tempArray2 [i ] ]
}
//
//返回最后得出的数组
return tempArray3
}