ListSort

説明

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

戻り値

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

カテゴリ

リスト関数

関数のシンタックス

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

オプション

 

  • 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=&quot;12,23,107,19,1,65&quot;
    sortedNums=ListSort(myList1,&quot;Numeric&quot;,&quot;asc&quot;,&quot;,&quot;)
    writeOutput(sortedNums & &quot;<br/>&quot;)
    // case 2
    myList2=&quot;23.75;-34,471:100,-9745&quot;
    sortedNums2=ListSort(myList2,&quot;Numeric&quot;,&quot;asc&quot;,&quot;;:,&quot;)
    writeOutput(sortedNums2 & &quot;<br/>&quot;)
    // case 3
    myList3=&quot;hello;123,HELLO:jeans,-345,887;ColdFusion:coldfusion&quot;
    sortedMix=ListSort(myList3,&quot;TextNoCase&quot;,&quot;asc&quot;,&quot;;,:&quot;)
    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=&quot;ColdFusion,COLDFUSION,Cold Fusion,Coldfusion&quot;;
       // コールバック関数の定義
       function callback(e1,e2){
             return compareNoCase(e1,e2);
       }
       mySortedList=ListSort(myList,callback);
       writeOutput(mySortedList);
</cfscript>

compareNoCase をコールバックとして使用した例。

<cfscript> 
    listToSort = &quot;d,C,b,A&quot; 
    sortedList = listToSort.listSort(compareNoCase) 
    writeDump(sortedList) 
</cfscript>

出力

A,b,C,d

compare をコールバックとして使用した例。

<cfscript> 
    listToSort = &quot;d,C,b,A&quot; 
    sortedList = listToSort.listSort(compare) 
    writeDump(sortedList) 
</cfscript>

出力

A,C,b,d

 Adobe

ヘルプをすばやく簡単に入手

新規ユーザーの場合

Adobe MAX 2025

Adobe MAX Japan
クリエイターの祭典

2025 年 2 月 13 日
東京ビッグサイト