Flex 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方法以及参数的方式,如下代码所示。

 1 var flexArray:Array=[“adobe”,”Adobe”,”Macromedia”,”flex”,”Flex”];
 2 
 3 flexArray.sort();                                    //对Array类进行排序
 4 
 5 trace(flexArray);                                  //输出“Adobe,Flex,Macromedia,adobe,flex,macromeida”
 6 
 7 flexArray.sort(Array.CASEINSENSITIVE);            //忽略大小写的排序
 8 
 9 trace(flexArray);                                 //输出“Adobe,adobe,Flex,flex Macromedia,macromeida”
10 
11 flexArray.sort(Array.DESCENDING);                    //倒序排列
12 
13 trace(flexArray);                                  //输出“macromeida,flex,adobe,Macromedia,Flex,Adobe”

Array类还提供直接的倒序排序方法resverseresverse方法没有参数。使用方式如下代码所示。

1 var flexArray:Array=[“adobe”,”Adobe”,”Macromedia”,”flex”,”Flex”];
2 
3 flexArray.resverse();                                       //倒序排列
4 
5 trace(flexArray);                                               //输出“macromeida,flex,adobe,Macromedia,Flex,Adobe”

Array类还提供一个sortOn的方法,实现对简单对象的内容进行排序。通过sortOn的方法可以指定简单对象的排序字段,从而对整个Array实例进行排序。使用方式如下代码所示。

 1 var flexArray:Array=new Array();
 2 
 3 flexArray.push({productName:”Flash”,version:”8”});
 4 
 5 flexArray.push({productName:”Flash”,version:”9”});
 6 
 7 flexArray.push({productName:”Flex”,version:”1.5”});
 8 
 9 flexArray.push({productName:”Flex”,version:”2”});
10 
11 flexArray.push({productName:”Flex”,version:”3”});
12 
13 flexArray.sortOn(version,Array. NUMERIC);
14 
15 for(var i:int=0;i<flexArray.length;i++)
16 {
17          trace(flexArray[i].productName+”:”+flexArray[i].version);
18 }

上面代码运行结果如下所示。

Flex:1.5

Flex:2

Flex:3

Flash:8

Flash:9
原文地址:https://www.cnblogs.com/wahsonleung/p/3182198.html