映射到变量并在匹配后检索

Mapping to a Variable and retrieving once they match

我有一个复选框列表,选中这些复选框后,getEventName 方法应返回与标签匹配的键。例如label是"NEW",当map[key] = "new"时返回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 "";
        }

遍历对象属性需要 for..in 循环而不是 for each.. in

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

还要考虑到,地图中的对象是数组,这就是为什么您的比较 map[key] == label 将始终 return false.