![]() |
Вопрос про массивы
Народ, есть такой вопрос: если массив задан через <имя массива>[<имя элемента>], например a["name"], и так далее все элементы прописаны, то есть ли варианты, кроме как задания напрямую имени того или иного элемента, обратиться к его значению.
Проще - a["name"]="One"; trace(a["name"]) По-другому узнать значение элемента "name" можно? Через его индекс не получается..... Причем если массив задан таким образом, то при чтении свойства length возвращается 0, как это ни странно. Почему? |
Если a["name"] - это массив, то я бульдозер. Посмотри в хэлпе про массивы.
|
Во флэше нету ассоциативных массивов, а a["name"] соотвествует a.name
|
Ага, понятно :) Просто у меня в голове клин был, что если какая строка с квадратными скобками, то сразу массив :D Где-то увидел подобные строки, вот и подумал, что это массив, и что можно ему элементы именовать прям строками :) Спасибо, не буду больше заблуждаться и искать невозможного :)
|
Ну, почему же...? Вот это, например, - массив, его можно задавать так:
a = ["name","nick","age","gender","height","weight"]; Можно так: a = new Array("name","nick","age","gender","height","weight"); Можно так: a = new Array(); a[0]= "name"; a[1]= "nick"; a[2]= "age"; a[3]= "gender"; a[4]= "height"; a[5]= "weight"; А затем: for(i=0;i<a.length;i++){ trace(a[i]); } |
Да! Но его нельзя задать так:
Код:
a = new Array(); |
2BlooDHounD: неудачный пример:a["0"]="name" - так можно, нельзя наоборот a["name"] = "0";...
|
2 silin
Цитата:
|
я и говорю, что привел неудачный пример, потому как строки "0", "1", "2" ... "n" флэш преобразует в нумберы
и такой код a = new Array(); a["0"] = "name"; a["1"] = "nick"; trace(a); работает (посмотри) |
Согласен.
Признаю.
|
| Часовой пояс GMT +4, время: 21:03. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.