使用来自2个不同字段的数值对数组集合进行排序

时间:2011-08-10 11:24:06

标签: arrays flex actionscript-3 sorting

大家好我需要对arraycollection进行排序。问题是我的数组是由两个不同的数组组合而成,其中一个年龄段被称为“年龄段”,而另一个年龄被称为“年龄段”。

现在我需要根据年龄对组合数组进行排序,但我有两个不同名称的字段。我可以通过数组并将所有“MYAGE”更改为“AGE”,但我想知道是否有一种方法可以将数组排序为当前状态?

提前致谢

1 个答案:

答案 0 :(得分:1)

假设您有一个名为myCollection的ArrayCollection。我希望以下内容能解决您的要求:

private function compareItems(a:Object, b:Object, fields:Array = null):int
{
    var firstValue:Number = "AGE" in a ? a["AGE"] : a["MYAGE"];
    var secondValue:Number = "AGE" in b ? b["AGE"] : b["MYAGE"];
    if (firstValue == secondValue)
        return 0;
    return firstValue > secondValue ? 1 : -1;
}

…

var sort:ISort = new Sort();
sort.compareFunction = compareItems;
myCollection.sort = sort;
myCollection.refresh();