![]() |
Трехмерный массив с подобъектами
Доброго времени суток!
Подскажите, пожалуйста, как мне замутить трехмерный массивчик с вложенными объектами? Пример(просто сам алгоритм): a[0] = "aga"; a[0][0]="ugu"; a[0][1]="ugu2"; a[0][1][0].name = "ege"; a[0][1][0].num = 10; a[0][1][0].txt = "bla bla bla"; при этом каким-то образом желательно получать объем каждого массива в отдельности. То есть a[].length = 1,a[][].length=2,a[][][].length=0. p.s. Темно уже на улице, может и туплю чего не обессудьте)) |
Ну и в чем проблема?
|
Здравствуйте uglan!
Мне не совсем понятна целесообразность конструкций: Цитата:
А вообще многомерный массив можно создать с использованием литерала, пример: Код:
var a:Array = [["aga","ugu"],["ege","uau","oh"]];Код:
a[0]Код:
a[0] = "aga"Теперь, если Вы хотите вложить объект (скажем инстанцию Object) в трехмерный массив лучше сделать это так: Код:
a[0][0][0] = {name:"ege", num:10, txt:"bla bla bla"}Код:
a[0][0][0] = new Object(); |
Проблема в том что даже двумерный массив такого вида ничего не возвращает:
Код:
var a=new Array();Код:
a[0][0] = "ugu"Код:
a[0][0][0] = new Object(); |
А подобный вид
Код:
var a:Array =new Array();------------------------------------- Объясню для чего мне это нужно. Мне нужна некая трехуровневая структура иерархического типа в которой будут храниться данные. Причем класс на каждом уровне может быть разный. Пример: FirstLevel1(name - "FLevel1") --SecondLevel1(name - "SLevel1") ----ThirdLevel1(name = "TLevel1",desc="desc TLevel1",index="1" и т.д.) ----ThirdLevel2(name = "TLevel1",desc="desc TLevel1",index="1" и т.д.) ----ThirdLevel3(name = "TLevel1",desc="desc TLevel1",index="1" и т.д.) ----ThirdLevel4(name = "TLevel1",desc="desc TLevel1",index="1" и т.д.) --SecondLevel2(name - "SLevel2") ----ThirdLevel1(name = "TLevel1",desc="desc TLevel1",index="1" и т.д.) ----ThirdLevel2(name = "TLevel1",desc="desc TLevel1",index="1" и т.д.) --SecondLevel2 --SecondLevel3 Структура создается динамически, поэтому изначально нельзя определить размер массива. |
uglan! Вы поймите следущее. Если Вы создали массив это не значит, что в каждой ячейке его можно создать свойство и присвоить ему значение. Это можно сделать только после создания инстанции Object в ячеке массива.
Сделайте так: в этом примере Цитата:
Код:
var a:Array = [[],[]]; |
А вот так не работает.
Код:
var a:Array = [[],[],[]];И опять таки вот такой код Код:
var a:Array = [[],[]]; |
uglan, а почему вы не хотите использовать xml для хранения того, что вы называете
"трехуровневая структура иерархического типа "? |
Мне кажется массив удобнее(без заморочки с кучей childNodes), если он вообще может работать с тройной структурой.
|
Код:
var a:Array = []; |
| Часовой пояс GMT +4, время: 23:57. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.