·您当前的位置:首页 > 技术教程 > AS2与AS3技术 >

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

时间:2012-11-23 00:08aa-a.net
[AS3]AS3数组Array的有规则排序代码示例,前篇文章写到过《as3中数组实现不重复随机代码》的方法,今天再把as3中对数组进行自定义排序的方法整理一下写出来。

  前篇文章写到过《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则两个参数排序优先级相同。

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器