比较函数的要求:
两个参数, 返回值只能是1、0、-1中的一个。
function 函数名( 参数A:类型, 参数B:类型 ):int{...}
比较函数的作用:
指定比较函数后,程序会自动将数组中的元素一对对地取出来,分别作为比较函数的两个参数A和B。
- 如果返回值是1,则作为A参数的数组元素应当排在B后面。
- 如果返回值是-1,则作为B参数的数组元素应当排在A后面。
- 如果返回值是0,则表示比较结果一样,不分先后。当返回值为0,切指定排序方式为Array.UNIQUESORT的话,数组排序就会认为失败并返回返回值0。
演示代码:
var a:Object = {price: 20, number: 3, name: "a"};
var b:Object = {price: 10, number: 1, name: "b"};
var c:Object = {price: 50, number: 7, name: "c"};
var arr:Array = [a, b, c];
arr.sort( compare );
trace(arr[0].name); //输出结果:b
trace(arr[1].name); //输出结果:a
trace(arr[2].name); //输出结果:c
//比较函数
function compare(A:Object, B:Object):int
{
var rA:int = A.price * A.number;
var rB:int = B.price * B.number;
if(rA > rB) return 1;
if(rA < rB) return -1;
return 0;
}