2015-10-22 2 views
0

У меня есть список флажков, которые при выборе метода getEventName должны возвращать ключ, соответствующий метке. Например, если метка «NEW», ключ должен быть возвращен, когда map [key] = «новый». Они определены в функции LABEL_EVENTTYPE ниже. Он всегда возвращает пустую строку и не может понять, почему.Сопоставление с переменной и извлечение после их соответствия

public static const LABEL_EVENTTYPE_MAP:Object = { 
     "CANCEL":["cancelled","expired", "doneForDay"], 
     "NEW":["new"], 
     "TRADE":["trade"], 
     "AMEND":["replaced"], 

} 





private function getEventName(label:String):String{ 
      var map:Object = ReplayConstants.LABEL_EVENTTYPE_MAP; 
      for each(var key:String in map){ 

       if (map[key] == label){ 
        return key; 
       }  

     } 
      return ""; 
     } 

ответ

0

Перебор свойств объекта требует for..in петли вместо for each.. in

for (var key:String in map){ 
    if (map[key] == label){ 
     return key; 
    }  
} 

Также примите во внимание, что объекты, находящиеся в вашей карте являются массивы, поэтому ваше сравнение map[key] == label всегда будет возвращать false.