Создайте ассоциативный массив с динамическими ключами в Actionscript 2

StackOverflow https://stackoverflow.com/questions/1218920

Вопрос

для файла 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] );

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

Это было полезно?

Решение

Я бы начал с создания экземпляра моей переменной 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 не являются строковыми переменными, вам необходимо использовать строковые литералы.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top