ActionScript字典:如何访问第一个元素?它是如何储存的?

ActionScript字典:如何访问第一个元素?它是如何储存的?,actionscript,Actionscript,例如,当您执行“for…in”循环时,它将迭代字典。我想知道这是如何在内部被跟踪的,以及如何访问它 我认为Dictionary类存储了对第一项的引用,但是我想访问它并进行检查,但是我不知道如何访问它。这有点先进,有人有想法吗 谢谢, RudyActionScript的Dictionary类实际上并不是一个有序的集合。换句话说,它实际上没有“第一项”。当然,如果您使用for或for each循环遍历这些项,则必须首先访问其中一个项,以便执行以下操作: var firstKey:*; var fir

例如,当您执行“for…in”循环时,它将迭代字典。我想知道这是如何在内部被跟踪的,以及如何访问它

我认为Dictionary类存储了对第一项的引用,但是我想访问它并进行检查,但是我不知道如何访问它。这有点先进,有人有想法吗

谢谢,
Rudy

ActionScript的Dictionary类实际上并不是一个有序的集合。换句话说,它实际上没有“第一项”。当然,如果您使用
for
for each
循环遍历这些项,则必须首先访问其中一个项,以便执行以下操作:

var firstKey:*;
var firstValue:*;
for (firstKey in myDictionary)
{
   firstValue = myDictionary[firstKey];
   break;
}
// variables now hold the "first" key and value, or undefined if the dictionary is empty.

<强>但是,字典类没有关于项的顺序的约定,即使顺序是可预测的(字母键,第一赋值==第一次返回,等等),我会认为它是在播放器版本之间变化的实现细节。此外,该类不公开您可以访问的任何内部映射

如果您真的关心控制迭代顺序(或者只是想知道如何在ActionScript中处理它),我建议您检查一下。通过扩展它并重写一些方法,您可以控制项的迭代顺序,以及其他一些很酷的东西。(与迭代相关的方法有,和,中有一个示例。)这样,您可以创建自己的类似字典的集合类,该集合类也对项进行索引


或者,您可以查看第三方集合/迭代器包,这些包可能已经有了您需要的东西。

谢谢Matthew,这是一个非常完整的解释。正如您所建议的,我将循环与break语句一起使用,但是我考虑到顺序可能会发生变化,并且没有很好的定义。我将按照你的建议创建我自己的类。谢谢!