示例代码如下:
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