示例代码如下:
 1 var names:Array = new Array("John Q. Smith""Jane Doe""Mike Jones");
 2 function orderLastName(a, b):int {
 3   var lastName:RegExp = /\b\S+$/;
 4   var name1 = a.match(lastName);
 5   var name2 = b.match(lastName);
 6   if (name1 < name2) {
 7     return -1;
 8   } else if (name1 > name2) {
 9     return 1;
10   } else {
11     return 0;
12   }
13 }
14 trace(names); // output: John Q. Smith,Jane Doe,Mike Jones
15 names.sort(orderLastName);
16 trace(names); // output: Jane Doe,Mike Jones,John Q. Smith
17 

主要看orderLastName的返回值:
  • 如果return    -1那么a与b符合条件,不发生交换,a依然存在于b的前面。
  • 如果return    1那么a与b不符合条件,发生交换,b存在于a的前面。
  • 如果return    0那么a与b相同,就不发生交换,按原来输出。

内置参数:

  •  Array.CASEINSENSITIVE:按降序排列。
  • Array.DESCENDING::按升序排列。
  • Array.UNIQUESORT:忽略相同的元素。
  • Array.NUMERIC:按数字排序(不是以字符)。
  • Array.RETURNINDEXEDARRAY:这个参数是在sortOn()中的,它将返回一个Array,里面的元素是原数组的排序后的序列号。

文章来源:http://computer.mblogger.cn/yang007/posts/55920.aspx
posted on 2006-07-19 20:05  FireYang  阅读(337)  评论(0编辑  收藏  举报