Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Общие вопросы (http://www.flasher.ru/forum/forumdisplay.php?f=10)
-   -   Array ( Matrix ) (http://www.flasher.ru/forum/showthread.php?t=61518)

zeboton 05.08.2004 19:29

Array ( Matrix )
 
А разве во FLASH нельзя создавать многомерные массивы?

К примеру следующий код выдает undefined:
Код:

myArray = new Array();
tmp    = "FIO";

myArray[tmp]["Name"] = "Serg";

trace( myArray.FIO.Name );


Жень Шень 05.08.2004 20:09

Попробуй так:

code:

//двухмерный
myArray = [["A", "B"], ["C", "D"]];
trace(myArray[0][0])

// трехмерный
myArray = [ [ [11,22], [123, 444], [55, 56]], [[57, 58]] ]
trace(myArray[0][0][1])

начинающий 05.08.2004 20:33

А при чём тут вообще массивы?
Автор топика пишет: myArray.FIO.Name, то есть - обращается к объекту к свойству FIO объекта myArray, а потом - к свойству Name. Значит, вместо myArray = new Array() можно было бы написать, напр.: myArray = new Object().
Ну а для того, чтобы программа заработала, необходимо перед строчкой myArray[tmp]["Name"] = "Serg" дописать: myArray[tmp]=new Object()

zeboton 05.08.2004 21:24

2 Жень Шень
Это-то я знаю. Но мне нужен ассоциативный массив.

2 начинающий
Надо попробовать

artfla$her 05.08.2004 23:40

myArray = new Array();
tmp = "FIO";

myArray[tmp] = [];
myArray[tmp]["Name"] = "Serg";

trace( myArray.FIO.Name );

Фишка в том, что ты не инициализировал myArray[tmp]. Т.е. ты не указал, что есть у тебя myArray[tmp]. Вначале надо создать ассоциативный массив первой вложенности, потом уже добавлять элементы.

Жень Шень 06.08.2004 11:30

Всем привет!
Давайте разложим все по полкам. Есть:
Одномерные массивы.
Паралельные массивы.
Ассоциативные массивы.
Многомерные массивы.
Массивы в качестве объекта

В вопросе прозвучало "многомерный массив". Затем последовало уточнение - "ассоциаивный"!!!
Начинающий как раз привел пример многомерного массива;
artfla$her - ассоциативного .

Правда, може на 2 строчки короче:
myArray = new Array();
myArray.firstName = "Sergey";
myArray.lastName = "Ivanovich";
myArray.Fam = "Petrov";
trace myArray.firstName+" "+myArray.lastName+" "+myArray.Fam);

А выбирать что нужно zebotonу
Спасибо за внимание.

zeboton 06.08.2004 13:03

ВСЕМ ОГРОМНОЕ СПАСИБО!!! Теперь я понял как работать с массивани во FLASH!

2 Жень Шень
А если я скажу так, я тоже скажу не правильно?
Мне нужна двумерная матрица, обращения к элементам которой произходит не по числовым координатам ее столбцов и строк, а по их именам. Во :)

Жень Шень 06.08.2004 13:59

"Обзови хоть горшком, только в печь не сажай"
................................................................................ Глас народа.

Суть асоциативного массива - работа с группой связаных данных, каждый элемент которого индексирован словом . И индекс дожен быть уникальным . А структуру никто не мешает делать многомерной.

Просто первоначальный вопрос прозвучал однозначно, но каждый отвечающий давал правильный ответ по отношению к определенному виду массива.
Объект Array хорошо описан Рейнхардтом в "Библии АС".
Всего найлучшего! :)

начинающий 06.08.2004 15:08

Жень Шень пишет:
> Начинающий как раз привел пример многомерного массива;
А где именно? А?

artfla$her 07.08.2004 01:35

Цитата:

А где именно? А?
myArray[tmp]["Name"] - имеется в виду многомерная структура. Вообще, если я не ошибаюсь, многомерным массив называется именно из-за структуры. Как уже сказал Жень Шень, никто не мешает делать ассоциативный массив многомерным. (сколько речевых ошибок я сделал, батюшки мои!!!! :D :D :D )


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

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