循环遍历flash中的对象属性

Cha*_*erj 4 flash actionscript-3

我有一个对象,可以在此序列中添加属性.

Home
School
living
status
sound
Memory
Run Code Online (Sandbox Code Playgroud)

当我遍历对象时,它们不会按顺序出现.如何让他们按此顺序出来.

数据是对象

for (var i:String in data)
{
    trace(i + ": " + data[i]);
}
Run Code Online (Sandbox Code Playgroud)

有没有办法对它进行排序?

Mar*_*rty 9

对您可以访问属性的顺序进行排序的唯一方法是手动.这是我为你创建的一个函数:

function getSortedPairs(object:Object):Array
{
    var sorted:Array = [];

    for(var i:String in object)
    {
        sorted.push({ key: i, value: object[i] });
    }

    sorted.sortOn("key");

    return sorted;
}
Run Code Online (Sandbox Code Playgroud)

试用:

var test:Object = { a: 1, b: 2, c: 3, d: 4, e: 5 };
var sorted:Array = getSortedPairs(test);

for each(var i:Object in sorted)
{
    trace(i.key, i.value);
}
Run Code Online (Sandbox Code Playgroud)