语句:Array.sortOn
可用性:Flash Player 6,附加功能已在 Flash Player 7 中添加
前几天看了一个帖子是关于数组排序的,详见ASP?boardID=10&ID=207623&page=1 里面大家提出了各种方法,尤其是tigerkin的方法是我没想到过的。
不过呢本人一向比较懒,所以能用自带的就用自带的。
使用Array.sortOn可以很方便的进行排序。先看看用法:
my_array.sortOn("fieldName":String ) : Array
my_array.sortOn("fieldName":String, option:Number | option |... ) : Array
my_array.sortOn( [ "fieldName" , "fieldName" , ... ]:Array) : Array
my_array.sortOn( [ "fieldName" , "fieldName" , ... ]:Array , option:Number | option |... ) : Array参数fieldname代表字段,参数option内容如下
1 or Array.CASEINSENSITIVE 不区分大小写(a 位于 Z 之前)
2 or Array.DESCENDING 根据ASCII (Unicode) 值降序
4 or Array.UNIQUESORT 唯一性验证
8 or Array.RETURNINDEXEDARRAY 返回包含索引值的数组的排序
16 or Array.NUMERIC 按数值升序排序
18 按数值降序排序
例子1:对myArray=new Array(1,2,3,25,3,138)排序(降序)
myArray=new Array(1,2,3,25,3,138)
myArray.sortOn("",2|16)
trace(myArray)
结果
138,25,3,3,2,1
因为这个数组是没有字段的,所以用""代替了,2|16代表按数值降序排列
简单吧,像我这种记性差的人就比较适合这样简单的命令
例子2:对以下数组排序操作
var my_array= new Array();
my_array.push({id:1,level:19,Name:"smia"});
my_array.push({id:2, level:13,Name:"hnyashiro"});
my_array.push({id:3, level:36,Name:"tophy"});
my_array.push({id:4, level:24,Name:"tigerkin"});1:按照level数值降序排序
my_array.sortOn("level",2|16);//一个排行榜就出来了
//查看
for(i=0;i<my_array.length;i++)
{
trace(my_array[i].id+"/"+my_array[i].level+"/"+my_array[i].Name);
}
结果
2/13/hnyashiro
1/19/smia
4/24/tigerkin
3/36/tophy2:得到一个新数组,经过关于level的排序
var indexArray:Array= my_array.sortOn("level",8|16);
trace(indexArray);结果
1,0,3,2
注意这里的结果是原数组的索引号
以上就是Array.sortOn的一些基本用法,其实基本都是自带帮助里有的
剩下的关于对多个字段进行排序,相信需要这个的朋友一定有能力通过帮助读懂的
