ここは旧式の4DドキュメントWebサイトです。最新のアップデートされたドキュメントを読むには新サイトをご利用下さい→ developer.4d.com |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v19.8
collection.orderByMethod( )
|
collection.orderByMethod ( methodName {; extraParam}{; extraParam2 ; ... ; extraParamN} ) -> 戻り値 | ||||||||
引数 | 型 | 説明 | ||||||
methodName | テキスト |
![]() |
並べ替え順を指定するのに使用するメソッドの名前 | |||||
extraParam | 式 |
![]() |
メソッドの引数 | |||||
戻り値 | コレクション |
![]() |
並べ替えされたコレクションのコピー(シャロウ・コピー) | |||||
collection.orderByMethod( ) メソッドはmethodName 引数で指定したメソッドを通して定義された順番で並べ替えされたコレクションの要素を全て格納する新しいコレクションを返します。
このメソッドはシャロウ・コピー、つまり両方のコレクション内のオブジェクトあるいはコレクションが同じ参照を共有するコピーを返します。元のコレクションが共有コレクションであった場合、返されたコレクションもまた共有コレクションになります。
注: このメソッドは元のコレクションは変更しません。
methodName 引数には、二つの値を比較して、最初の値が二つ目の値より低い場合には$1.result にtrue を返す比較メソッドの名前を渡します。必要であればmethodName 引数に追加の引数を渡すこともできます。
文字列のコレクションを、アルファベット順ではなく、数値順に並べ替えをしたい場合を考えます:
C_COLLECTION($c)
$c:=New collection
$c.push("33";"4";"1111";"222")
$c2:=$c.orderBy() //$c2=["1111","222","33","4"] アルファベット順
$c3:=$c.orderByMethod("NumAscending") // $c3=["4","33","222","1111"]
NumAscending メソッドのコードは以下のようになります:
$1.result:=Num($1.value)<Num($1.value2)
文字列のコレクションをそれらのlengthで並べ替えをしたい場合を考えます:
C_COLLECTION($fruits)
$fruits:=New collection("Orange";"Apple";"Grape";"pear";"Banana";"fig";"Blackberry";"Passion fruit")
$c2:=$fruits.orderByMethod("WordLength")
//$c2=[Passion fruit,Blackberry,Orange,Banana,Apple,Grape,pear,fig]
WordLength のコードは以下のようになります:
$1.result:=Length(String($1.value))>Length(String($1.value2))
コレクション内を文字コードまたはアルファベット順に基づいて並べ替えしたい場合を考えます:
var $strings1;$strings2 : Collection
$strings1:=New collection("Alpha";"Charlie";"alpha";"bravo";"Bravo";"charlie")
// 文字コードを使用する
$strings2:=$strings1.orderByMethod("sortCollection";sk char codes)
// 結果: ["Alpha","Bravo","Charlie","alpha","bravo","charlie"]
// アルファベット順を使用する
$strings2:=$strings1.orderByMethod("sortCollection";sk strict)
// 結果: ["alpha","Alpha","bravo","Bravo","charlie","Charlie"]
sortCollection メソッド:
var$1Object
var$2Integer // sort option
$1.result:=(Compare strings($1.value;$1.value2;$2)<0)
プロダクト: 4D
テーマ: コレクション
番号:
705253
初出: 4D v16 R6
ランゲージリファレンス ( 4D v19)
ランゲージリファレンス ( 4D v19.1)
ランゲージリファレンス ( 4D v19.4)
ランゲージリファレンス ( 4D v19.5)
ランゲージリファレンス ( 4D v19.6)
ランゲージリファレンス ( 4D v19.7)
ランゲージリファレンス ( 4D v19.8)