映射到变量并在匹配后检索
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
.
我有一个复选框列表,选中这些复选框后,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
.