2010-03-05 2 views
45
for (var k in dictionary) 
{ 
    var key:KeyType = KeyType(k); 
    var value:ValType = ValType(dictionary[k]); // <-- lookup 
    // do stuff 
} 

Это то, что я использую для прокрутки записей в словаре. Как вы можете видеть на каждой итерации, я выполняю поиск в словаре. Есть ли более эффективный способ итерации словаря (при сохранении доступа к ключу)?Эффективный цикл через словарь AS3

ответ

64

перебирать ключи & значения:

for (var k:Object in dictionary) { 
    var value:ValType = dictionary[k]; 
    var key:KeyType = k; 
} 

перебирать значения более сжато:

for each (var value:ValType in dictionary) { 

} 
+0

мне нужно знать ключ (топленое в моем вопросе) –

+6

принято потому, что он отвечает на вопрос. В качестве решения, однако, я сделал обертку вокруг словаря, в котором хранится ключ и значение как значение его словаря. –

-1

В AS3 есть 3 различных for петли, вы должны использовать тот, который лучше всего подходит вашим потребностям.

Программистов тратить огромное количество времени, думая о том, или беспокоиться о том, скорости некритических частей их программ, и этих попытки эффективности на самом деле имеют сильное негативное влияние при отладке и обслуживание рассматривается. Мы должны забыть о небольшой эффективности, скажем, около 97% времени: преждевременная оптимизация - корень всех зла. Однако мы не должны упускать наши возможности в том, что критические 3%.

Дональд Кнут

Смежные вопросы