ListSort

説明

ソートのタイプとソート順に従って、リスト要素をソートします。

戻り値

ソートしたリストのコピー

カテゴリ

リスト関数

関数のシンタックス

ListSort(list,sortType,[sortOrder=asc, delimiters=',' ,includeEmptyFields=false, localeSensitive=false])

コールバックを使用する関数

ListSort(list,callback)

関連項目

ColdFusion アプリケーションの開発』の「ColdFusion 変数の使用」のリスト

履歴

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 を降順でソートすると次のようになります。

  • 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

オプション

 

  • numeric:数値をソートします。
  • text:テキストをアルファベット順にソートし、 大文字と小文字  を考慮(大文字と小文字を区別)します。大文字と小文字は分けられ、次のようにソートされます。
  • aabzABZ (sortOrder = " asc "(昇順ソート)の場合)、ZBAzbaa(sortOrder = "desc"(降順ソート)の場合)
  • textnocase :テキストを、大文字と小文字を区別せずにアルファベット順にソートします。この場合、大文字と小文字に関係なく、次のようにアルファベット順にソートされます。
  • aAaBbBzzZ(昇順ソート)。元の文字間の順序を保持します。ZzzBbBaAa(降順ソート)。 元の 文字間の順序を逆にします。

sortOrder

必須

asc

  • asc  - 昇順のソート。デフォルト。
  • aabzABZ  または aAaBbBzzZ(sortType の 値  に従う)。文字(小文字から大文字の順)/数字用。
  • desc - 降順のソートです。
  • ZBAzbaa または ZzzBbBaAa(sortType の 値  に従う)。文字(大文字から小文字の順)/数字用。

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";
       // define callback function
       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

アドビのロゴ

アカウントにログイン