天天看點

actionscript排序問題

1.sort:主要對簡單資料結構的數組進行排序。預設為按照unicode值進行排序。

比如

var myArray:Array = [42,1,100,56];

myArray.sort();

trace(myArray);

輸出結果為:1,100,42,56

2.想要對實作特定的排序可以使用提供的排序類型。

· Array.CASEINSENSITIVE:不區分大小寫 

· Array.DESCENDING:降序排序 

·  Array.UNIQUESORT:如果元素都是唯一,不存在重複就進行排序,否則不排序 

·  Array.RETURNINDEXEDARRAY:将排序後的元素的新順序傳回,但不修改原來的數組 

·  Array.NUMERIC:按照數字大小排序 

如:

var myArray:Array = [42,1,100,56];

myArray.sort(Array.NUMERIC | Array.DESCENDING);

trace(myArray);

輸出結果為100,56,42,1

3.可以自定義排序方法。

var myArray:Array = [1,100,99,42];

trace(myArray.sort(compare));//compare可以随意,隻是個函數名字。

function compare(a,b)//參數名可以随意,但必須是兩個參數

{

          if(a>=b)

           {

                    return 1;//傳回1,第一個元素放到後面

           }

          else

         {

                   return  -1://傳回-1,第一個元素放到前面,若傳回0則兩個元素相等。

          }

}

結果:1,42,99,100

4.sortOn:對複雜資料結構的數組排序。

如:

var player1:Object = ["name":"Jack","age":6,"gender":undefined];

var player2:Object = ["name":"Anna","age":23,"gender":"female"];

var player3:Object = ["name":"Paul","age":32,"gender":"male"];

var tournament:Array = [player1,player2,player3];

tournament.sortOn("age",Array.NUMERIC | Array.DESCENDING);

for(var i:uint=0;i<tournament.length;i++)

{

        trace(tournament[i].name);

}

輸出結果, Paul,Anna,6

5.reverse:将現有順序逆向 

轉載于:https://blog.51cto.com/sincerecorner/677073