0

在我下面的代码中,字段长度始终为 0,我很确定其中有一些键值对。

var fields = Reflect.fields(_commandMap);
trace("mapping "+fields.length);
4

1 回答 1

1

您无法访问 Hash 中数组形式的值。

这是一个哈希

var a = new Hash();
a.set("hello", 0);
a.set("bonjour", 1);
a.set("ohai", 2);

这是您可以访问值/键的一些方法:

for (value in a)
{
    trace(value); //Will trace 0, 1, 2 (no assurance that it will be in that order)
}

for (key in a.keys())
{
    trace(key); //Will trace hello, bonjour, ohai (no assurance that it will be in that order)
}

如果要将哈希转换为数组,请使用Lambda

var valueArray = Lambda.array(a);
trace(valueArray[0]); //can be 0, 1 or 2

//since keys() returns an Iterator, not an Iterable, we cannot use Lambda here...
var keyArray = [];
for (key in a.keys()) keyArray.push(key);
trace(keyArray[0]); //can be hello, bonjour or ohai
于 2012-10-29T09:20:15.723 回答