我想知道 AS3 中数组、字典和对象类型的迭代顺序,对于 for-each 和 for-in 循环。还有哪些因素可以改变这些循环类型组合的迭代顺序?

例如,我假设在 Array 类型上使用 for-each 总是从第一个元素移动到最后一个元素。 For-each 不能用于字典,那么如何使用 for-in 循环确定顺序?

最佳答案

你的意思是 for (x in y) 类型的 for-each 循环? AS3 规范说 for 循环“具有与 ECMA-262 第 3 版和 E4X 中定义的相同的语法和语义”。

ECMA-262,第 12.6.4 节指出“枚举的顺序由对象定义”——换句话说,这取决于您是否在遍历列表、字典、数组等。

我希望大多数集合的文档将明确说明枚举顺序(或未定义顺序),但我还没有检查......

编辑:不幸的是,规范指出“枚举属性的机制 [...] 取决于实现。”我在 Array 文档中看不到任何内容来指定排序。说实话有点不满意:(

关于actionscript-3 - For-Each 循环 AS3 : Is the direction guaranteed?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/618966/

10-12 14:37
查看更多