Создайте ассоциативный массив с динамическими ключами в Actionscript 2 - PullRequest
0 голосов
/ 02 августа 2009

для файла XML, я хочу создать массив в ActionScript, где я могу ссылаться на определенное значение с помощью ключа, который я установил, а не 0, 1, 2 и т. Д.

buildings = myParsedObjectFromXML;

var aBuildings = new Array();

for ( building in buildings ) {
    var currentBuilding = buildings[building][0];
    var key:String = currentBuilding.buildingCode;

    aBuildings[key][property1] = currentBuilding.someOtherValue;
    aBuildings[key][property2] = currentBuilding.aDifferentValue;
    ... etc
}

Чтобы я мог получить доступ к данным позже, как это:

// building description
trace( aBuildings[BUILDING1][property2] );

но вышеописанное не работает - что мне не хватает?

1 Ответ

2 голосов
/ 03 августа 2009

Я бы начал с создания экземпляра моей переменной aBuildings как объекта, а не как массива:

var aBuildings = new Object();

Далее необходимо сначала создать объект для ключа, в котором вы хотите сохранить свойства.

aBuildings[key] = new Object();
aBuildings[key]["property1"] = currentBuilding.someOtherValue;
aBuildings[key]["property2"] = currentBuilding.aDifferentValue;

Тогда вы сможете прочитать значения из объекта aBuildings:

trace( aBuildings["BUILDING1"]["property2"] );

Имейте в виду, что если BUILDING1 и property2 не являются строковыми переменными, вам необходимо использовать строковые литералы.

...