public sort([compareFunction:Object], [options:Number]) : Array
配列内のエレメントをソートします。ソートは Unicode 値に基づいて実行されます(ASCII は Unicode のサブセットです)。
Array.sort() のデフォルトの動作は、次のようになります。
デフォルト設定と異なる設定を使用して配列のソートを行う場合は、options パラメータのエントリで説明されているソートオプションのいずれかを使用することも、ソート処理を行う独自のカスタム関数を作成することもできます。カスタム関数を作成する場合は、最初のパラメータ (compareFunction) としてカスタム関数の名前を使用して、sort() メソッドを呼び出すことで作成できます。
compareFunction:Object (オプション) - 配列内のエレメントのソート順を決定する比較関数。エレメント A と B がある場合、compareFunction は次の 3 つの値のいずれかを返します。
options:Number (オプション) - デフォルトのソート動作を変更する数値または定義済み定数の名前。複数指定する場合は、ビット単位の論理和 (OR) | 演算子で区切ります。options パラメータには次の値を指定できます。
このパラメータの詳細については、「Array.sortOn() メソッド」を参照してください。
メモ :Array.sort() は ECMA-262 仕様を拡張した Flash 固有の機能です。ECMA-262 でも定義されていますが、配列ソートオプションは Flash Player 7 で実装したものです。
Array - 戻り値は、次に示すように、指定されたパラメータによって異なります。
シンタックス 1 : 次に、options に値が渡された場合と渡されなかった場合の Array.sort() の例を示します。
var fruits_array:Array = new Array("oranges", "apples", "strawberries", "pineapples", "cherries");
trace(fruits_array); // oranges,apples,strawberries,pineapples,cherries を表示します。
fruits_array.sort();
trace(fruits_array); // apples,cherries,oranges,pineapples,strawberries を表示します。
trace(fruits_array); // apples,cherries,oranges,pineapples,strawberries を書き込みます。
fruits_array.sort(Array.DESCENDING);
trace(fruits_array); // strawberries,pineapples,oranges,cherries,apples を表示します。
trace(fruits_array); // strawberries,pineapples,oranges,cherries,apples を書き込みます。
シンタックス 2 : 次に、Array.sort() と比較関数を組み合わせた例を示します。エントリは "名前:パスワード" でソートされます。エントリの名前の部分だけをソート条件として使用します。
var passwords_array:Array = new Array("mom:glam", "ana:ring", "jay:mag", "anne:home", "regina:silly");
function order(a, b):Number {
var name1:String = a.split(":")[0];
var name2:String = b.split(":")[0];
if (name1<name2) {
return -1;
} else if (name1>name2) {
return 1;
} else {
return 0;
}
}
trace("Unsorted:");
//Unsorted: を表示します。
trace(passwords_array);
//mom:glam,ana:ring,jay:mag,anne:home,regina:silly を表示します。
//mom:glam,ana:ring,jay:mag,anne:home,regina:silly を書き込みます。
passwords_array.sort(order);
trace("Sorted:");
//Sorted: を表示します。
trace(passwords_array);
//ana:ring,anne:home,jay:mag,mom:glam,regina:silly を表示します。
//ana:ring,anne:home,jay:mag,mom:glam,regina:silly を書き込みます。
このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート