搜尋部落格文章

2012年8月13日 星期一

Array的多條件排序

陣列中元素為基本類型資料(String,int,uint)
可使用Array.sort(); 對陣列中的元素進行排序

若陣列中元素為Object類型,內含多種屬性與值
例如: id,type,width,height,amount ...等

若想依某個條件排序,可使用Array.sortOn("屬性名稱");
例: array.sortOn("amount");

因為是數量,所以必須按照數值排序而非預設的字串排序,故添加第二個參數Array.sortOn("屬性名稱",排序方式);
例: array.sortOn("amount",Array.NUMERIC); 

單一條件排序很好用,但實際專案上可能會需要用到多條件排序,如下
  1. type
  2. amount
  3. id 

Array.sortOn( fieldName,options);
注意: fieldName 和 options 陣列必須具有相同的元素數目,否則會忽略 options 陣列。 此外,Array.UNIQUESORT 和 Array.RETURNINDEXEDARRAY 選項只能用來當做陣列的第一個元素,否則便會忽略這些選項。

可以這麼寫
array.sortOn(["type","amount","id"],[Arrar.CASEINSENSITIVE,Array. NUMERIC,Array. NUMERIC]);
也可對二維陣列排序
var arr:Array=[[1,2,3],[3,2,1],[2,1,3],[10,20,3],[3,10,1]]
arr.sortOn([0,1], Array.DESCENDING|Array.NUMERIC);