Получение значения из массива с использованием динамического ключа в flex

#apache-flex #flex4

#apache-flex #flex4

Вопрос:

У меня есть массив следующим образом.

 var array:Array = new Array();
array["Circle"] = 1;
array["Rect"] = 2;
  

Я хочу прочитать значения с помощью переменной.

 var key:String = "Circle";
trace(array[key]);
  

Кто-нибудь может подсказать мне, как этого добиться. Необязательно использовать только массив. Я могу переключиться на любую коллекцию, в которой это возможно.

Комментарии:

1. Чего именно вы хотели бы достичь. Вы хотите, чтобы какой-нибудь код перебирал все пары ключ-значение вашей карты?

2. Мне кажется, что вы уже поняли это.

Ответ №1:

Использовать Object или Dictionary :

 var obj:Object = new Object();
obj["Circle"] = 1;
obj["Rect"] = 2;

// alternative initialization - only for Object
obj = {Circle: 1, Rect: 2};

for (var key:String in obj)
{
    trace("key:", key, ",", "value:" obj[key]);
}

// output:
// key: Circle , value: 1
// key: Rect , value: 2

for each (var value:Object in obj)
{
    trace(value);
}

// output:
// 1
// 2