宜昌本地软件开发与弱电工程服务商
项目咨询 · 快速响应
您当前的位置: > 博客2 > AS2与AS3技术

[AS3]AS3数组Array的有规则排序代码示例

2016-10-13 00:16:48 点击量:9 标签: 收藏本文

  前篇文章写到过《as3中数组实现不重复随机代码》的方法,今天再把as3中对数组进行自定义排序的方法整理一下写出来。

  as3中对数组进行自定义排序要使用sort()方法,这个方法对于Array和Vector类数组都适用。sort()方法除了可以对数组进行最基本的排序以外,还可以通过编写自定义函数,并把自定义函数作为sort()的参数,来实现自定义排序。

  如下面的示例:

  1. var nameArr:Array=["John Q. Smith","Jane Doe","Mike Jones","A B","Davi Lee","Z A"];//定义一个数组,其元素均为字符串 
  2. function lastName(a:String ,b:String):int { 
  3. var lastname:RegExp= /\b\S+$/;//正则表达式,获取最后一个空格符之后的部分字符 
  4. var nameA=a.match(lastname);//CuPlayer.com在字符串A中查找 
  5. var nameB=b.match(lastname);//在字符串B中查找匹配的部分 
  6. if (nameA<nameB) {//比较字符串并返回不同值,以字母先后顺序来比较 
  7. return -1; 
  8. } else if (nameA>nameB) { 
  9. return 1; 
  10. } else { 
  11. return 0; 
  12. trace(nameArr);//John Q. Smith,Jane Doe,Mike Jones,A B,Davi Lee,Z A 
  13. nameArr.sort(lastName);//执行自定义排序 
  14. trace(nameArr);//Z A,A B,Jane Doe,Mike Jones,Davi Lee,John Q. Smith 

  在上面的代码中用到了字符串查找match()方法,要传入一个正则表达式对象作为查找的条件,如下示例:

  1. var str:String=”Abd Asd 123 xx”; 
  2. var lastt:RegExp=/\b\S+$/; 
  3. trace(str.match(lastt));//输出xx 

  如将上面字符串”Abd Asd 123 xx”中的xx去掉,则会输出null,因为此时最后一个空格符后面没有字符了,没有找到;如果连xx前面的那个空格符也去掉,则会输出123,因为此时123是符合查找条件的。

  在上面的lastName函数中是接受两个参数(a,b)的,因为排序函数每次对数组中两个元素进行操作,返回-1时表示第一个参数a优先于b,返回1表示第二个参数b优先于a,返回0则两个参数排序优先级相同。

ABOUT US
宜昌农人网络科技有限公司

我们是一家提供综合软件外包与弱电工程服务的技术公司。

业务涵盖定制软件、管理系统、网站、小程序、APP、系统集成、网络布线、监控安防、门禁、机房建设及长期技术维护。

公司地址:湖北省宜昌市伍家岗区东站二路6号三峡(宜昌)大数据产业园海洋馆二楼A203室