![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Вопрос таков. Есть ассоциативный массив как узнать сколько в нём объектов?
__________________
Спросишь, дурак на минуту. Если не спросишь, дурак на всю жизнь! |
|
|||||
|
Массив с индексами которые не являются цифрами - будет считаться object`ом, ...тогда свойство length бессмыслен! Он ничего не вернет! Придется проходиться циклом и считать каждый элемент.
arr1.length - является верным; если arr1 будет содержать в себе 2 сл. элемента, у которых первый индекс будет равен 1 и другой 1000 то length вернет 1000!!!! В случае с arr2 - это уже будет работать как object; т.е. придется проходиться по каждому элементу: |
|
|||||
|
спасибо.
__________________
Спросишь, дурак на минуту. Если не спросишь, дурак на всю жизнь! |
|
|||||
|
Вернее указывать Object вместо String в таком случае.
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
Регистрация: Jun 2008
Адрес: курский вокзал
Сообщений: 1,114
|
Кстати, если унаследоваться от Proxy, то можно и по length узнавать
__________________
Я просто добрый шутник. |
|
|||||
|
Modus ponens
|
И пожалуйста, не называйте это ассоциативным массивом. При кажущемся сходстве, это таблица (или, если угодно, карта), а не массив. Разница в том, что в массиве допустимы повторяющиеся ключи, а в таблице - нет. На уровне стандартных компонент языка ассоциативных массивов в AS3 нет, но их можно заменить близкими по духу, самописными массивами элементов, где каждый элемент содержит объект типа пары имя-значение, или такими же самописными связными ассоциативными списками (где содержимое списка - меньшие списки состоящие ровно из двух елементов, головы и хвоста).
__________________
Hell is the possibility of sanity |
|
|||||
|
Хм, интересно.
А как в AS3 в массиве можно сделать 2 повторяющихся ключа? Один перетрет другой ведь.
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
Modus ponens
|
Почему? все тот же XMLList / XML, или симитировать их работу с помощью прокси. Только я не уверен, что прям в этом бывает такая жизненная необходимость. Т.е. мы можем, например, всегда возвращать массив при обращении к какому-то свойству, или запоминать последний индекс и в следующий раз возвращать следующий по списку.
__________________
Hell is the possibility of sanity |
|
|||||
|
Цитата:
Меня больше интересует массив вроде Array. Как туда записать 2 повторяющихся ключа?
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
Modus ponens
|
Самый простой пример, без классов
![]() private function listExample():void { var head:Object = { name: "name", value: 1 }; var accosList:Object = { next: head }; head = { name: "name", value: 2 }; accosList.next.next = head; var current:Object = accosList; while (current.next) { trace("modeled property name:", current.next.name); trace("modeled property value:", current.next.value); current = current.next; } }
__________________
Hell is the possibility of sanity |
![]() |
![]() |
Часовой пояс GMT +4, время: 06:56. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|