![]() |
|
||||||||||
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Именно.
|
|
|||||
|
Регистрация: May 2009
Сообщений: 14
|
После других языков программирования это звучит удивительно нереально.
Всем спасибо за помощь, буду думать как пролезть другим путём ![]() Добавлено через 30 минут Решил всё-таки покопаться дальше. Для чего тогда существуют методы сортировки элементов массива, если они выводятся в случайном порядке? Это противоречит вашим словам, что они выводятся в произвольном порядке. Последний раз редактировалось Anghram; 15.04.2010 в 20:12. |
|
|||||
|
Регистрация: Dec 2006
Адрес: 66°32′00″ с. ш. 66°38′00″ в. д.
Сообщений: 85
|
для того чтобы можно было сделать так:
|
|
|||||
|
Регистрация: May 2009
Сообщений: 14
|
Так — это вывести всё в первоначальном варианте? Сортировка в таком случае не будет учтена.
На всякий случай напомню про ассоциативные массивы. for решает лишь в определённых случаях, когда нумерация инкрементная без пробелов, в остальных используется for each (for ... in). |
|
|||||
|
У вас каша в голове. Во флеше массивы это не честные массивы.
for in гуляет по памяти, нашел - ага! Это элемент массива! Давай ка его - отсюда и случайный порядок. А порядок в массиве задается его индексом - сортировка сортирует элементы так, чтобы, например, наименьшее число было с самым мелким индексом. И тогда при прямом проходе массива выведутся значения по возрастанию, но память как была кашей, так и идёт.
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
Регистрация: May 2009
Сообщений: 14
|
Дык каша и возникла из-за того, что флеш работает с массивами как-то слишком по-своему.
Как я понял из экспериментов — он слабо разбирается что такое ключи и ассоциативные массивами. Если работать лишь со значениями — всё в порядке. Но тогда страдает вычислительная часть. Если брать свой пример выше: user[123]['name'] = "Petya" user[123]['surname'] = "Ivanov" user[427]['name'] = "Vanya" user[427]['surname'] = "Sidorov" Получается, если юзер 427 поменяет имя, то мне надо каждый раз искать такую запись. |
|
|||||
|
Зачем ты в качестве ключа указываешь какое-то число? Пихай его тоже в объект:
var user:User = new User(); user.id = 427; user.name = "Petya"; user.surname = "Ivanov"; users.push(user); //Сортировка по id users.sortOn("id"); //Проход по сортированному массиву for (var i:int =0; i < users.length; i++){ var user:User = users[i]; } ... //Дополнительный класс пользователя class User extends Object{ public var id:int; public var name:String; public var surname:String; }
__________________
if (love is true) break my.heart; Последний раз редактировалось Rzer; 16.04.2010 в 01:54. |
|
|||||
|
буду краток
модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
|
Как в этом случае взять конкретного юзера по id?
Перебирать весь массив для поиска объекта с нужным id? Тут надо решить что важнее: быстрый доступ - тогда будет хэш-список или сортировка (массив).
__________________
Отряд Котовскага |
|
|||||
|
Так можно совместить приятное с полезным: сделать один обычный массив, а другой ассоциативный.
__________________
if (love is true) break my.heart; |
![]() |
![]() |
Часовой пояс GMT +4, время: 23:48. |
|
|
« Предыдущая тема | Следующая тема » |
|
|