Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   многомерный массив, сортировка (http://www.flasher.ru/forum/showthread.php?t=116738)

Орец 09.10.2008 18:20

многомерный массив, сортировка
 
Есть массив массивов вида:
Код:

***
massiv["p20"]=["Название20", "Вид3", "2", "15", "Описание"];
massiv["p21"]=["Название21", "Вид2", "2", "16", "Описание"];
massiv["p22"]=["Название22", "Вид5", "2", "17", "Описание"];
massiv["p23"]=["Название23", "Вид2", "3", "18", "Описание"];
massiv["p24"]=["Название24", "Вид4", "3", "19", "Описание"];
massiv["p25"]=["Название25", "Вид1", "3", "20", "Описание"];
massiv["p26"]=["Название26", "Вид4", "4", "21", "Описание"];
***

В массиве пара сотен (или 5тысяч значений).
Нужно сортировать по Виду и названию.
Видел примеры сортировки для объектов. Есть подходящий способ сортировки для многомерного массива? :o

Division 09.10.2008 18:34

ИМХО нет разницы, сортировать такой массив или одномерный.
http://ru.wikipedia.org/wiki/Быстрая_сортировка
Ну или простой способ: http://ru.wikipedia.org/wiki/Сортировка_пузырьком

Felicast 10.10.2008 11:57

Цитата:

massiv["p20"]=["Название20", "Вид3", "2", "15", "Описание"];
на сколько я помню в АС нет ассациативных массивов.

Орец 10.10.2008 12:21

Цитата:

Сообщение от Felicast (Сообщение 769273)
на сколько я помню в АС нет ассациативных массивов.

Тем не менее работает.

Division Спасибо. Буду разбираться.

Diestro 10.10.2008 12:26

Можно использовать sortFunction.

Орец 10.10.2008 12:30

Цитата:

Сообщение от Division (Сообщение 769133)
ИМХО нет разницы, сортировать такой массив или одномерный.

А по моему довольно большие отличая. По крайней мере для решения подобной задачи. :rolleyes:

terbooter 10.10.2008 13:01

А покажите примеры сортировки для объектов?

BlooDHounD 10.10.2008 13:14

Орец, у Вас тут нету многомерного массива. у вас хэш массивов. массивы Вы отсортировать сможете, а вот хэш нет.

Орец 10.10.2008 13:27

Цитата:

Сообщение от BlooDHounD (Сообщение 769294)
Орец, у Вас тут нету многомерного массива. у вас хэш массивов. массивы Вы отсортировать сможете, а вот хэш нет.

Совсем никак? То-то смотрю никаких идей в голову не приходит. Разве что создать массив массивов при оббегании хэша и сортировать уже его. Как то не рационально получается... Или поразмышлять о том как при работе обходиться без хэшей.

Цитата:

Сообщение от terbooter (Сообщение 769290)
А покажите примеры сортировки для объектов?

Код:

var cars:Array = new Array();
cars.push({make: "Honda", year: 1997, color:"maroon"});
cars.push({make: "Chrysler", year: 2000, color:"beige"});
cars.push({make: "Mersedes", year: 1985, color:"blue"});
cars.sortOn(["year", "make"]);
 for (var i:int=0; i < cars. lenght; i++){
//А тут например вывод отсортированного.
}

Вроде должно работать для объектов, лично не пробовал.

terbooter 10.10.2008 16:04

А, так Вы имели ввиду массив объектов =)

Только в первом посте не массив массивов, а объект поля которого массивы.
Проверить очень просто. Вызовите метод length у вашего массива


Часовой пояс GMT +4, время: 01:09.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.