[AS3]AS3数组Array的有规则排序代码示例
前篇文章写到过《as3中数组实现不重复随机代码》的方法,今天再把as3中对数组进行自定义排序的方法整理一下写出来。
as3中对数组进行自定义排序要使用sort()方法,这个方法对于Array和Vector类数组都适用。sort()方法除了可以对数组进行最基本的排序以外,还可以通过编写自定义函数,并把自定义函数作为sort()的参数,来实现自定义排序。
如下面的示例:
- var nameArr:Array=["John Q. Smith","Jane Doe","Mike Jones","A B","Davi Lee","Z A"];//定义一个数组,其元素均为字符串
- function lastName(a:String ,b:String):int {
- var lastname:RegExp= /\b\S+$/;//正则表达式,获取最后一个空格符之后的部分字符
- var nameA=a.match(lastname);//CuPlayer.com在字符串A中查找
- var nameB=b.match(lastname);//在字符串B中查找匹配的部分
- if (nameA<nameB) {//比较字符串并返回不同值,以字母先后顺序来比较
- return -1;
- } else if (nameA>nameB) {
- return 1;
- } else {
- return 0;
- }
- }
- trace(nameArr);//John Q. Smith,Jane Doe,Mike Jones,A B,Davi Lee,Z A
- nameArr.sort(lastName);//执行自定义排序
- trace(nameArr);//Z A,A B,Jane Doe,Mike Jones,Davi Lee,John Q. Smith
在上面的代码中用到了字符串查找match()方法,要传入一个正则表达式对象作为查找的条件,如下示例:
- var str:String=”Abd Asd 123 xx”;
- var lastt:RegExp=/\b\S+$/;
- trace(str.match(lastt));//输出xx
如将上面字符串”Abd Asd 123 xx”中的xx去掉,则会输出null,因为此时最后一个空格符后面没有字符了,没有找到;如果连xx前面的那个空格符也去掉,则会输出123,因为此时123是符合查找条件的。
在上面的lastName函数中是接受两个参数(a,b)的,因为排序函数每次对数组中两个元素进行操作,返回-1时表示第一个参数a优先于b,返回1表示第二个参数b优先于a,返回0则两个参数排序优先级相同。
热门文章推荐
- [HLS]做自己的m3u8点播系统使用HTTP Live Streaming(HLS技术)
- [FMS]FMS流媒体服务器配置与使用相关的介绍
- [AS3]什么是M3U8,与HTML5的区别是什么
- AS2.0 让flash自适应全屏,并且不自动缩放
- [AS3]as3.0的sound类常用技巧整理
- [AS3]as3与ByteArray详解、ByteArray介绍、ByteArray用法
- 关于RTMP,RTMPT,RTMPS,RTMPE,RTMPTE协议的介绍
- [JS]分享浏览器弹出窗口不被拦截JS示例