Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 28.07.2006, 10:59
Odyssus вне форума Посмотреть профиль Отправить личное сообщение для Odyssus Найти все сообщения от Odyssus
  № 1  
Ответить с цитированием
Odyssus
[6 07.05.06]
 
Аватар для Odyssus

Регистрация: Dec 2005
Сообщений: 98
По умолчанию Сортировка Asort()

Есть массив
Код:
a[0] = {id:'0', name:'ВИННИЦА',	curr:0,	summa:0};
a[1] = {id:'1', name:'ЛУЦК',	curr:0,	summa:6};
a[2] = {id:'2', name:'ДНІПРОПЕТРОВСК',	curr:0,	summa:6};
a[3] = {id:'10', name:'ДОНЕЦК',	curr:0,	summa:0};
Если сортировать его по возрастанию a.sortOn("id", 16);, то 10 показывает перед 2 (нашел выход ставить 0 перед 1 и 2, тогда нормально, а может можна без дополнительного 0?)
А если просортировать по сумме по убыванию - то как-то непонятно сортирует 2,1,0,10(предполагаю, где одинаковые поля - так оно смотрит другорядно на неймы, а чтобы смотрело на id, если суммы одинаковы?).

Старый 28.07.2006, 11:45
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 2  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,879
Записей в блоге: 7
Если малой кровью, то просто сделать id не String, а Number
Код:
a[0] = {id:0, name:'ВИННИЦА', curr:0, summa:0};
a[1] = {id:1, name:'ЛУЦК', curr:0, summa:6};
a[2] = {id:2, name:'ДНІПРОПЕТРОВСК', curr:0, summa:6};
a[3] = {id:10, name:'ДОНЕЦК', curr:0, summa:0};
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 28.07.2006, 16:39
Odyssus вне форума Посмотреть профиль Отправить личное сообщение для Odyssus Найти все сообщения от Odyssus
  № 3  
Ответить с цитированием
Odyssus
[6 07.05.06]
 
Аватар для Odyssus

Регистрация: Dec 2005
Сообщений: 98
А на счет поддерживает сортировку по двум полям (типа если равны два поля - то смотрить второе поле и сортировать по нем), или вручную надо процедурку создавать?

Старый 28.07.2006, 16:47
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 4  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,784
http://livedocs.macromedia.com/flash.../00001916.html

Старый 28.07.2006, 17:01
Odyssus вне форума Посмотреть профиль Отправить личное сообщение для Odyssus Найти все сообщения от Odyssus
  № 5  
Ответить с цитированием
Odyssus
[6 07.05.06]
 
Аватар для Odyssus

Регистрация: Dec 2005
Сообщений: 98
я видел уже это :-)

Код:
a = new Array();
a[0] = {id:0, name:'ВИННИЦА',	curr:0,	summa:0};
a[1] = {id:1, name:'ЛУЦК',	curr:0,	summa:6};
a[2] = {id:2, name:'ДНІПРОПЕТРОВСК',	curr:0,	summa:6};
a[3] = {id:10, name:'ДОНЕЦК',	curr:0,	summa:0};
a.sortOn(["summa", "id"]);
for(i=0; i<a.length; i++){
    trace(a[i].name + ", " + a[i].id);
}
такой код дает по возрастающей по всем параметрам...
вот я хочу сортирнуть этот массив, чтобы мне сначала по сумме - по убывающей, потом, где суммы одинаковые - второстепенным параметром - id (а айди по возрастающей)
В идеале - должно типа так получится:
Луцк
Днепропетровск
Виница
Донецк


Последний раз редактировалось iNils; 28.07.2006 в 17:39.
Старый 28.07.2006, 17:02
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 6  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,784
Самое время перейти на 8 =)

Старый 28.07.2006, 17:35
Odyssus вне форума Посмотреть профиль Отправить личное сообщение для Odyssus Найти все сообщения от Odyssus
  № 7  
Ответить с цитированием
Odyssus
[6 07.05.06]
 
Аватар для Odyssus

Регистрация: Dec 2005
Сообщений: 98
спс за совет, очень благодарен, а по сути ничего не посоветуешь? )))

Старый 28.07.2006, 17:40
KidsKilla вне форума Посмотреть профиль Отправить личное сообщение для KidsKilla Посетить домашнюю страницу KidsKilla Найти все сообщения от KidsKilla
  № 8  
Ответить с цитированием
KidsKilla
.grin! wuz here
 
Аватар для KidsKilla

Регистрация: Aug 2004
Адрес: paradise city
Сообщений: 3,981
Отправить сообщение для KidsKilla с помощью ICQ
Цитата:
Сообщение от Odyssus
спс за совет, очень благодарен, а по сути ничего не посоветуешь? )))
в sort можно задавать собственную ф-цию сортировки.
http://novemberain.com/livedocs/Help.../00001200.html
my_array.sort(compareFunction:Function) : Array


Последний раз редактировалось KidsKilla; 28.07.2006 в 17:42.
Старый 28.07.2006, 17:40
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 9  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,879
Записей в блоге: 7
http://www.flasher.ru/forum/showthread.php?t=79513
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 28.07.2006, 18:20
Odyssus вне форума Посмотреть профиль Отправить личное сообщение для Odyssus Найти все сообщения от Odyssus
  № 10  
Ответить с цитированием
Odyssus
[6 07.05.06]
 
Аватар для Odyssus

Регистрация: Dec 2005
Сообщений: 98
Спс всем за помощь!!
Особенно 2iNils

Создать новую тему Ответ Часовой пояс GMT +4, время: 14:40.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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