如何按对象中的数据排序? (AS3)

时间:2012-08-24 03:55:48

标签: actionscript-3 flash

我有一个由如下数字数据组成的对象:

var records:Object = {};

records["nh"] = { medinc:66303};
records["ct"] = { medinc:65958};
records["nj"] = { medinc:65173};
records["md"] = { medinc:64596};

等...

我想知道如何通过“medinc”中的值以数字方式对对象进行排序?

感谢您的帮助

2 个答案:

答案 0 :(得分:4)

var records:Object = {};
var arr:Array = [
                    records["nh"] = { medinc:66303},
                    records["ct"] = { medinc:65958},
                    records["nj"] = { medinc:65173},
                    records["md"] = { medinc:64596},
                    records["kk"] = { medinc:61321} 
                ];

arr.sortOn("medinc", Array.NUMERIC);

for each (var value:* in arr){
    trace(value.medinc);
}

Object是一个关联数组,因为它是排序的,因为它没有意义,没有访问索引。相反,将它放在一个数组(索引数组)中。排序的意思。

并参考以下文档。

Assoociative Arrays (a.k.a Object)

Indexed Arrays (a.k.a Array)

答案 1 :(得分:1)

为了将来参考,我需要对array 2个索引进行排序。 score (降序),如果scores相等,则按id (升序)排序。

以下是它的完成方式:

players.sortOn(
    ["score", "id"],
    [Array.DESCENDING | Array.NUMERIC, Array.NUMERIC]
);

管道|以组合多个选项,例如DESCENDING | NUMERIC