精通Flex 3.0——4.5.5 Array的排序

Array類中,提供內置的排序方法。排序是在軟件開發的過程中,經常遇到的問題。通過這些內置的方法,可以快速輕便的進行排序操作。

Array類提供sort方法對Array實例進行排序。sort方法沒有返回值,直接改變Array中元素的位置。sort方法有一系列參數,這些參數表明排序的方法以及排序的依據。Array類的排序實際上是針對內容的字符串ASCII碼進行排序。sort方法的參數使用方式如表所示。

sort方法參數說明

參數

參數使用說明

CASEINSENSITIVE

使用該參數進行排序,會忽略元素的大小寫的進行排序。例如,Aa的值是相等的。

DESCENDING

使用該參數進行排序會使用倒序排列方式。

UNIQUESORT

使用該參數進行排序,如果在Array中有相同的元素,會中止排序。

NUMERIC

使用該參數進行排序,採用數字的方式進行排序。例如,11進行普通排序的時候會出現在2的前面,因爲1ASCII編碼比2要小,使用Number參數使得2出現在11的前面。

使用sort方法以及參數的方式,如下代碼所示。

var flexArray:Array=[“adobe”,”Adobe”,”Macromedia”,”flex”,”Flex”];

flexArray.sort();                                                         //Array類進行排序

trace(flexArray);                                                        //輸出“AdobeFlexMacromediaadobeflexmacromeida

flexArray.sort(Array.CASEINSENSITIVE);            //忽略大小寫的排序

trace(flexArray);                                                        //輸出“AdobeadobeFlexflex Macromediamacromeida

flexArray.sort(Array.DESCENDING);                    //倒序排列

trace(flexArray);                                                        //輸出“macromeidaflexadobeMacromediaFlex Adobe

Array類還提供直接的倒序排序方法resverseresverse方法沒有參數。使用方式如下代碼所示。

var flexArray:Array=[“adobe”,”Adobe”,”Macromedia”,”flex”,”Flex”];

flexArray.resverse();                                       //倒序排列

trace(flexArray);                                               //輸出“macromeidaflexadobeMacromediaFlex 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);

}

上面代碼運行結果如下所示。

Flex1.5

Flex2

Flex3

Flash8

Flash9

發佈了65 篇原創文章 · 獲贊 0 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章