ここは旧式の4DドキュメントWebサイトです。最新のアップデートされたドキュメントを読むには新サイトをご利用下さい→ developer.4d.com |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v19.8
collection.orderBy( )
|
collection.orderBy ( {criteria} ) -> 戻り値 | ||||||||
引数 | 型 | 説明 | ||||||
criteria | テキスト, コレクション, 倍長整数 |
![]() |
テキスト: コレクションを並べ替えするプロパティパス コレクション: 条件オブジェクトのコレクション 倍長整数: ck ascending あるいは ck descending (スカラー値) |
|||||
戻り値 | コレクション |
![]() |
並べ替えられたコレクションのコピー(シャロウ・コピー) | |||||
collection.orderBy( ) メソッドは、criteria 引数で指定した順にコレクションの要素を並べ替えた新しいコレクションを返します。
このメソッドはシャロウ・コピー、つまり両方のコレクション内のオブジェクトあるいはコレクションが同じ参照を共有するコピーを返します。元のコレクションが共有コレクションであった場合、返されたコレクションもまた共有コレクションになります。
注: このメソッドは元のコレクションは変更しません。
criteria 引数を省略した場合、メソッドはコレクション内のスカラー値を昇順に並べ替えます(オブジェクトやコレクションなどの他の型は並べ替えされないまま返されます)。この自動並べ替え順は、criteria 引数にck ascending あるいは ck descending 定数を渡すことで変更できます(以下参照)。
また、コレクション要素をどのようにならべかえるかを定義するようにcriteria 引数を渡すこともできます。この引数に対しては3つのシンタックスがサポートされています:
定数 | 型 | 値 | コメント |
ck ascending | 倍長整数 | 0 | 要素は昇順に並んでいる(デフォルト) |
ck descending | 倍長整数 | 1 | 要素は降順に並んでいる |
コレクションが異なる型の要素を格納している場合、それらはまず型ごとにグループ分けされ、そのあとで並べ替えがされます。型は以下の順番で返されます:
数値のコレクションを昇順と降順で並べ替える場合を考えます:
C_COLLECTION($c;$c2;$3)
$c:=New collection
For($vCounter;1;10)
$c.push(Random)
End for
$c2:=$c.orderBy(ck ascending)
$c3:=$c.orderBy(ck descending)
オブジェクトのコレクションをプロパティ名のテキストフォーミュラに基づいて並べ替える場合を考えます:
C_COLLECTION($c)
$c:=New collection
For($vCounter;1;10)
$c.push(New object("id";$vCounter;"value";Random))
End for
$c2:=$c.orderBy("value desc")
$c2:=$c.orderBy("value desc, id")
$c2:=$c.orderBy("value desc, id asc")
オブジェクトのコレクションをプロパティパスで並べ替える場合を考えます:
C_COLLECTION($c)
$c:=New collection
$c.push(New object("name";"Cleveland";"phones";New object("p1";"01";"p2";"02")))
$c.push(New object("name";"Blountsville";"phones";New object("p1";"00";"p2";"03")))
$c2:=$c.orderBy("phones.p1 asc")
オブジェクトのコレクションを、条件オブジェクトのコレクションを使用して並べ替える場合を考えます:
C_COLLECTION($crit;$c)
$crit:=New collection
$c:=New collection
For($vCounter;1;10)
$c.push(New object("id";$vCounter;"value";Random))
End for
$crit.push(New object("propertyPath";"value";"descending";True))
$crit.push(New object("propertyPath";"id";"descending";False))
$c2:=$c.orderBy($crit)
プロパティパスで並べ替える場合を考えます:
C_COLLECTION($crit;$c)
$c:=New collection
$c.push(New object("name";"Cleveland";"phones";New object("p1";"01";"p2";"02")))
$c.push(New object("name";"Blountsville";"phones";New object("p1";"00";"p2";"03")))
$crit:=New collection(New object("propertyPath";"phones.p2";"descending";True))
$c2:=$c.orderBy($crit)
プロダクト: 4D
テーマ: コレクション
番号:
905251
初出: 4D v16 R6
ランゲージリファレンス ( 4D v19)
ランゲージリファレンス ( 4D v19.1)
ランゲージリファレンス ( 4D v19.4)
ランゲージリファレンス ( 4D v19.5)
ランゲージリファレンス ( 4D v19.6)
ランゲージリファレンス ( 4D v19.7)
ランゲージリファレンス ( 4D v19.8)