在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