示例
下面的示例创建一个新数组,并且按照 name 字段和 city 字段对该新数组进行排序。第一次排序使用 name 作为第一个排序值,使用 city 作为第二个排序值。第二次排序使用 city 作为第一个排序值,使用 name 作为第二个排序值。
var rec_array:Array = new Array();
rec_array.push({name: "john", city: "omaha", zip: 68144});
rec_array.push({name: "john", city: "kansas city", zip: 72345});
rec_array.push({name: "bob", city: "omaha", zip: 94010});
for(i=0; i<rec_array.length; i++){
trace(rec_array[i].name + ", " + rec_array[i].city);
}
// Results:
// john, omaha
// john, kansas city
// bob, omaha
rec_array.sortOn(["name", "city"]);
for(i=0; i<rec_array.length; i++){
trace(rec_array[i].name + ", " + rec_array[i].city);
}
// Results:
// bob, omaha
// john, kansas city
// john, omaha
rec_array.sortOn(["city", "name" ]);
for(i=0; i<rec_array.length; i++){
trace(rec_array[i].name + ", " + rec_array[i].city);
}
// Results:
// john, kansas city
// bob, omaha
// john, omaha
下面的对象数组由说明如何使用 options 参数的后续示例使用:
var my_array:Array = new Array();
my_array.push({password: "Bob", age:29});
my_array.push({password: "abcd", age:3});
my_array.push({password: "barb", age:35});
my_array.push({password: "catchy", age:4});
对 password 字段执行默认排序将产生以下结果:
my_array.sortOn("password");
// Bob
// abcd
// barb
// catchy
对 password 字段执行不区分大小写的排序将产生以下结果:
my_array.sortOn("password", Array.CASEINSENSITIVE);
// abcd
// barb
// Bob
// catchy
对 password 字段执行不区分大小写的降序排序将产生以下结果:
my_array.sortOn("password", Array.CASEINSENSITIVE | Array.DESCENDING);
// catchy
// Bob
// barb
// abcd
对 age 字段执行默认排序将产生以下结果:
my_array.sortOn("age");
// 29
// 3
// 35
// 4
对 age 字段执行数值排序将产生以下结果:
my_array.sortOn("age", Array.NUMERIC);
// my_array[0].age = 3
// my_array[1].age = 4
// my_array[2].age = 29
// my_array[3].age = 35
对 age 字段执行降序数值排序将产生以下结果:
my_array.sortOn("age", Array.DESCENDING | Array.NUMERIC);
// my_array[0].age = 35
// my_array[1].age = 29
// my_array[2].age = 4
// my_array[3].age = 3
在使用 Array.RETURNEDINDEXARRAY 排序选项时,您必须将返回值分配给不同的数组。原始数组不会被修改。
var indexArray:Array = my_array.sortOn("age", Array.RETURNINDEXEDARRAY);