在Array类中,提供内置的排序方法。排序是在软件开发的过程中,经常遇到的问题。通过这些内置的方法,可以快速轻便的进行排序操作。
Array类提供sort方法对Array实例进行排序。sort方法没有返回值,直接改变Array中元素的位置。sort方法有一系列参数,这些参数表明排序的方法以及排序的依据。Array类的排序实际上是针对内容的字符串ASCII码进行排序。sort方法的参数使用方式如表所示。
表 sort方法参数说明
参数 |
参数使用说明 |
CASEINSENSITIVE |
使用该参数进行排序,会忽略元素的大小写的进行排序。例如,A与a的值是相等的。 |
DESCENDING |
使用该参数进行排序会使用倒序排列方式。 |
UNIQUESORT |
使用该参数进行排序,如果在Array中有相同的元素,会中止排序。 |
NUMERIC |
使用该参数进行排序,采用数字的方式进行排序。例如,11进行普通排序的时候会出现在2的前面,因为1的ASCII编码比2要小,使用Number参数使得2出现在11的前面。 |
使用sort方法以及参数的方式,如下代码所示。
var flexArray:Array=[“adobe”,”Adobe”,”Macromedia”,”flex”,”Flex”]; flexArray.sort(); //对Array类进行排序 trace(flexArray); //输出“Adobe,Flex,Macromedia,adobe,flex,macromeida” flexArray.sort(Array.CASEINSENSITIVE); //忽略大小写的排序 trace(flexArray); //输出“Adobe,adobe,Flex,flex Macromedia,macromeida” flexArray.sort(Array.DESCENDING); //倒序排列 trace(flexArray); //输出“macromeida,flex,adobe,Macromedia,Flex,Adobe”
Array类还提供直接的倒序排序方法resverse。resverse方法没有参数。使用方式如下代码所示。
var flexArray:Array=[“adobe”,”Adobe”,”Macromedia”,”flex”,”Flex”]; flexArray.resverse(); //倒序排列 trace(flexArray); //输出“macromeida,flex,adobe,Macromedia,Flex,Adobe”
Array类还提供一个sortOn的方法,实现对简单对象的内容进行排序。通过sortOn的方法可以指定简单对象的排序字段,从而对整个Array实例进行排序。使用方式如下代码所示。
var flexArray:Array=new Array(); flexArray.push({productName:”Flash”,version:”8”}); flexArray.push({productName:”Flash”,version:”9”}); flexArray.push({productName:”Flex”,version:”1.5”}); flexArray.push({productName:”Flex”,version:”2”}); flexArray.push({productName:”Flex”,version:”3”}); flexArray.sortOn(version,Array. NUMERIC); for(var i:int=0;i<flexArray.length;i++)
{
trace(flexArray[i].productName+”:”+flexArray[i].version);
}
上面代码运行结果如下所示。
Flex:1.5 Flex:2 Flex:3 Flash:8 Flash:9