6

文字列のリストがあり、重複を削除する必要があります。私は次のような多くのことを試しました:

残念ながら、それらのどれも機能しませんでした。何が起こっているのかよくわかりません。だからどんな助けもいただければ幸いです。

現在、問題が発生した場合に備えて、無料の開発者向けバージョンのColdFusion10を使用しています。

サンプルリスト:

lacunar_DM、ホモシステイン、HTN、タバコ、未定、lacunar_DM、ホモシステイン、タバコ

これは、データベースから取得した動的リストに静的リストを追加することによって作成されました。

<cfsavecontent variable= "lacunar_list">
lacunar_DM,
Homocysteine,
HTN,
Tobacco,
undetermined
</cfsavecontent>
<cfset combination = ListAppend(lacunar_list, lacunar)>

<cfoutput>
List before removing dups: #combination#<br/>
List after removing dups: #listremoveduplicates(combination, ",", true)#<br/>
</cfoutput>

結果は次のとおりです。

重複を削除する前にリストします。

lacunar_DM、ホモシステイン、HTN、タバコ、未定、lacunar_DM、ホモシステイン、タバコ

重複を削除した後のリスト:

lacunar_DM、ホモシステイン、HTN、タバコ、未定、lacunar_DM、ホモシステイン、タバコ

4

5 に答える 5

8

あなたの問題はあなたのリストに余分な空白が含まれていることだと思います。「ホモシステイン」と「ホモシステイン」は同じ値ではありません。同様に、「Tobacco」と「Tobacco」は同じ値ではありません。

lacunar_DM, Homocysteine, HTN, Tobacco, undetermined ,lacunar_DM,Homocysteine,Tobacco
-----------^-------------^----^--------^------------^------------X------------X
于 2013-03-19T17:30:22.683 に答える
5

すでに述べたように、リスト項目には余分な空白が含まれています。リストを見ると、すべてのアイテムが_スペースとして使用されているため、最初にスペースを削除してから重複を削除するのが最も簡単な解決策です。

listRemoveDuplicates( Replace( YourList, " ", "", "ALL" ) )

有効なスペースがある場合はTrim()、リストを手動でコンパイルするときにフィールドの周りに a を使用することをお勧めします。

YourList = ListAppend( YourList, Trim( ListItem ) )
于 2013-03-19T18:02:12.627 に答える
4

リスト内の各項目の空白が削除されていることを確認してください。" Tobacco"等しく"Tobacco"なく、重複として表示されません。SQLクエリで、値をトリミングして、先頭または末尾にスペースがないことを確認します。静的リストで、コンマの間にスペースがないことを確認してください。

于 2013-03-19T17:29:52.773 に答える
2

CF10 をお持ちでない場合は、これがリストから重複を削除するための私の推奨方法です。

<cfset newlist = [] />
<cfloop list="#combination#" index="i">
    <cfif NOT arrayFind(newlist,trim(i))> // can also use arrayFindNoCase
     <cfset arrayAppend(newlist,trim(i))>
 </cfif>
</cfloop>

<cfoutput>
    #arraytolist(newlist)#
</cfoutput>
于 2013-03-19T18:08:38.130 に答える
1

問題は、作成したリストにcfsavecontent改行文字が含まれていることです。これは、そのリストの各項目が 内の独自の行にあるためcfsavecontentです。結合しようとしている他のリストには同じ空白がないため、正しい結果が得られません。

通常、Coldfusion のリストから不要な空白を削除することをお勧めします。

を使用する代わりにこれを試してくださいcfsavecontent:

<cfset lacunar_list = "lacunar_DM,Homocysteine,HTN,Tobacco,undetermined" >
<cfset combination = ListAppend(lacunar_list, lacunar)>
于 2013-03-25T03:04:26.713 に答える