PDA

Просмотр полной версии : Сортировать массив


sstotenkopf
16.10.2011, 03:01
Здравствуйте, я конечно понимаю, что вопрос бородатый, но все же не могу понять как действует моя сортировка, пытаюсь отсортировать arraycollection по полю "on":

ArrayCollection - arrColl
[
{label:"Рон", sn:"harisson", id:"784394", on:"1"},
{label:"Collen", sn:"johnson", id:"908364", on:"1"},
{label:"Sharon", sn:"marshal", id:"373467", on:"0"},
{label:"Ronnie", sn:"cartman", id:"76384", on:"0"},
{label:"Sydney", sn:"Bristow", id:"34334", on:"1"},
{label:"Brad", sn:"Shrayer", id:"27683", on:"0"},
{label:"Fred", sn:"Kennersy", id:"34566", on:"0"},
{label:"Marc", sn:"Larren", id:"87623", on:"1"}]

Функция:

public function sortCollection() : void
{
var dataSortField:SortField = new SortField();
dataSortField.name = "on";
dataSortField.numeric = true;
var numericDataSort:Sort = new Sort();
numericDataSort.fields = [dataSortField];
arrColl.sort = numericDataSort;
arrColl.refresh();
}

он конечно сортируется, но как то не так, мне кажется, что не по полю "on". Что посоветуете?

Silicium
16.10.2011, 03:34
какой результат получаете?

sstotenkopf
16.10.2011, 03:37
какой результат получаете?

ronnie cartman fred kennersy sharon marshal brad shrayer collen johnson рон harrison sydney bristow marc larren

wvxvw
16.10.2011, 11:53
Так результат же правильный... название темы только не правильное. ArrayCollection - не массив и не типа массив.

Silicium
16.10.2011, 13:00
Так результат же правильный...
Действительно. Сначала все нулики, потом единички - что не так? Если нужно, чтобы относительный порядок сохранялся, то надо добавить еще одно поле порядкового номера, и делать по нему сортировку второго порядка.

sstotenkopf
16.10.2011, 15:01
Действительно. Сначала все нулики, потом единички - что не так? Если нужно, чтобы относительный порядок сохранялся, то надо добавить еще одно поле порядкового номера, и делать по нему сортировку второго порядка.

Видно ночью, меня самого глючило...) Т.к. забыл написать, что мне нужно чтобы сначала шли единицы...

alatar
16.10.2011, 15:34
numericDataSort.reverse();

sstotenkopf
16.10.2011, 21:48
numericDataSort.reverse();

Спасибо! а как таким способом сортировать по двум полям?

GBee
16.10.2011, 21:58
Никак, это переворот массива. Сортировать по двум и более олям можно запихав несколько нужных SortField в массив sort.fields