パラメーター
ListSort(list,sortType,[sortOrder=asc, delimiters=',' ,includeEmptyFields=false, localeSensitive=false])
コールバックを使用する関数
ListSort(list,callback)
履歴
ColdFusion(2021 リリース):次の変更が加えられました。
- ソートメンバー関数は、compare/compareNocase をコールバックとして受け取ります。
ColdFusion(2018 リリース):名前付きパラメーターが導入されました。
ColdFusion 10:すべての Java でサポートされているロケール固有の文字のサポート(ウムラウト文字のサポートなど)が追加されました。このサポートのフラグは、sorttype = "text" または sorttype = " textnocase " です。
ColdFusion MX: ソートした要素を返す順序が変更されました。textnocase の降順でソートした場合、以前のリリースと異なるソート順で要素を返すことがあります。sortTtype = " textnocase " および sortOrder = "desc" である場合、大文字と小文字の違いだけがある要素については、ColdFusion MX と以前のリリースでは次のように処理が異なります。ColdFusion MX では、昇順を指定した場合の逆の結果になります。以前のリリースでは、大文字と小文字の区別だけが異なる要素の順序は変更されませんでした。これらはいずれも正しい処理ですが、新しい処理では、昇順と降順とで要素が逆の順序で出力されることが保証されます。例えば、textnocase で、d ,a ,a ,b ,A を desc の指定でソートすると、次のようになります。
- ColdFusion MX では、d,b,A,a,a が返されます。
- 以前の ColdFusion のリリースでは、d,b,a,a,A が返されます(textnocase で asc ソートを使用すると、ColdFusion のすべてのリリースにおいて a,a,A,b,d が返されます)。
パラメーター
|
必須/オプション |
デフォルト |
説明 |
---|---|---|---|
list |
必須 |
|
リスト、またはリストを含んでいる変数です。 |
includeEmptyFields |
オプション |
no |
空の値を含めるには、このフィールドを yes に設定します。 |
localeSensitive |
オプション |
false |
ロケールを考慮したソートを実行するかどうかを指定します。デフォルト値は false です。 |
sortType |
オプション |
|
|
sortOrder |
必須 |
asc |
|
delimiters |
オプション |
, |
文字列、または文字列を含んでいる変数です。リスト要素を区切る文字です。デフォルト値は カンマ です。このパラメーターに複数の文字が含まれている場合は、最初の文字だけが 区切り文字 として使用され、残りを無視します。 |
callback |
オプション |
|
リストの 2 つの要素を使用し、最初の値が 2 番目の値よりも大きい、等しい、または小さい場合、それぞれ 1、0、または -1 を返す関数。 |
使用方法
ColdFusion では空のリスト要素が無視されるので、"a,b,c,,,d" の場合は 4 つの要素があることになります。
例
<cfscript> // case 1 myList1="12,23,107,19,1,65" sortedNums=ListSort(myList1,"Numeric","asc",",") writeOutput(sortedNums & "<br/>") // case 2 myList2="23.75;-34,471:100,-9745" sortedNums2=ListSort(myList2,"Numeric","asc",";:,") writeOutput(sortedNums2 & "<br/>") // case 3 myList3="hello;123,HELLO:jeans,-345,887;ColdFusion:coldfusion" sortedMix=ListSort(myList3,"TextNoCase","asc",";,:") writeOutput(sortedMix) </cfscript>
出力
1,12,19,23,65,107
-9745;-34;23.75;100;471
-345;123;887;ColdFusion;coldfusion;hello;HELLO;jeans
コールバックを指定した例
<cfscript> myList="ColdFusion,COLDFUSION,Cold Fusion,Coldfusion"; // コールバック関数の定義 function callback(e1,e2){ return compareNoCase(e1,e2); } mySortedList=ListSort(myList,callback); writeOutput(mySortedList); </cfscript>
compareNoCase をコールバックとして使用した例。
<cfscript> listToSort = "d,C,b,A" sortedList = listToSort.listSort(compareNoCase) writeDump(sortedList) </cfscript>
出力
A,b,C,d
compare をコールバックとして使用した例。
<cfscript> listToSort = "d,C,b,A" sortedList = listToSort.listSort(compare) writeDump(sortedList) </cfscript>
出力
A,C,b,d