Flash CS3 ドキュメンテーション |
|||
| ActionScript 2.0 リファレンスガイド > ActionScript クラス > Array > sort (Array.sort メソッド) | |||
配列内のエレメントをソートします。ソートは Unicode 値に基づいて実行されます (ASCII は Unicode のサブセットです)。
Array.sort() のデフォルト動作は、次のように動なります。
デフォルト設定と異なる設定を使用して配列のソートを行う場合は、options パラメータのエントリで説明されているソートオプションのいずれかを使用することも、ソート処理を行う独自のカスタム関数を作成することもできます。カスタム関数を作成する場合は、カスタム関数の名前を最初のパラメータ (compareFunction) として使用して sort() メソッドを呼び出すことができます。
対応バージョン : ActionScript 1.0、Flash Player 5 - 配列ソートオプションが Flash Player 7 で追加されました。
compareFunction:Object (オプション) - 配列内のエレメントのソート順を決定する比較関数。エレメント A と B がある場合、compareFunction は次の 3 つの値のいずれかを返します。
options:Number (オプション) - デフォルトのソート動作を変更する数値または定義済み定数の名前。複数指定する場合は、ビット単位の論理和 (OR)| 演算子で区切ります。options パラメータには次の値を指定できます。
Array.CASEINSENSITIVE または 1Array.DESCENDING または 2Array.UNIQUESORT または 4Array.RETURNINDEXEDARRAY または 8Array.NUMERIC または 16 このパラメータの詳細については、「Array.sortOn() メソッド」を参照してください。
メモ: Array.sort() は ECMA-262 仕様を拡張した Flash 固有の機能です。ECMA-262 でも定義されていますが、配列ソートオプションは Flash Player 7 で導入されたものです。
Array - 戻り値は、次に示すように、指定されたパラメータによって異なります。
options パラメータに値 4 または Array.UNIQUESORT を指定し、ソート対象の複数のエレメントにまったく同じソートフィールドがある場合は 0 が返されます。配列は変更されません。options パラメータに値 8 または Array.RETURNINDEXEDARRAY を指定すると、ソート結果を反映した配列が返されます。配列は変更されません。シンタックス 1: 次に、options に値が渡される場合と渡されない場合の Array.sort() の例を示します。
var fruits_array:Array = new Array("oranges", "apples", "strawberries", "pineapples", "cherries");
trace(fruits_array); // Displays oranges,apples,strawberries,pineapples,cherries.
fruits_array.sort();
trace(fruits_array); // Displays apples,cherries,oranges,pineapples,strawberries.
trace(fruits_array); // Writes apples,cherries,oranges,pineapples,strawberries.
fruits_array.sort(Array.DESCENDING);
trace(fruits_array); // Displays strawberries,pineapples,oranges,cherries,apples.
trace(fruits_array); // Writes 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:");
//Displays Unsorted:
trace(passwords_array);
//Displays mom:glam,ana:ring,jay:mag,anne:home,regina:silly.
//Writes mom:glam,ana:ring,jay:mag,anne:home,regina:silly
passwords_array.sort(order);
trace("Sorted:");
//Displays Sorted:
trace(passwords_array);
//Displays ana:ring,anne:home,jay:mag,mom:glam,regina:silly.
//Writes ana:ring,anne:home,jay:mag,mom:glam,regina:silly.
| ビット単位の論理和 (OR) 演算子, sortOn (Array.sortOn メソッド)
このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート
現在のページ: http://livedocs.adobe.com/flash/9.0_jp/main/00001366.html