Сортировка массива коллекций по числовому значению из двух разных полей - PullRequest
0 голосов
/ 10 августа 2011

Привет, ребята, мне нужно отсортировать коллекцию массивов. проблема в том, что мой массив состоит из двух разных массивов, в одном поле возраста называется «ВОЗРАСТ», а в другом - возраст «MYAGE».

Теперь мне нужно отсортировать объединенный массив по возрасту, но я получил два поля с разными именами. Я могу пройти через массив и изменить все «MYAGE» на «ВОЗРАСТ», но мне было интересно, есть ли способ сортировки массива в его текущем состоянии?

Спасибо, впереди

1 Ответ

1 голос
/ 10 августа 2011

Скажем, у вас есть ArrayCollection с именем myCollection. Я надеюсь, что следующий запрос решит ваш вопрос:

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();
...