3

次のような数値データで構成されるオブジェクトがあります。

var records:Object = {};

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

等...

「medinc」の値でオブジェクトを数値で並べ替えるにはどうすればよいでしょうか。

ご協力いただきありがとうございます

4

2 に答える 2

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);
}

オブジェクトは、ソートのために連想配列です。それは無意味であり、アクセスインデックスが付けられていないためです。代わりに、それを配列(インデックス付き配列)に入れます。ソートの意味。

次のドキュメントを参照してください。

連想配列(別名オブジェクト)

インデックス付き配列(別名配列)

于 2012-08-24T04:42:31.730 に答える
1

後で参照できるように、array2つのインデックスで並べ替える必要がありました。A score (降順)と、scores等しい場合はid (昇順)で並べ替えます。

方法は次のとおりです。

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

|のような複数のオプションを組み合わせるためのパイプDESCENDING | NUMERIC

于 2014-01-15T14:53:29.487 に答える