首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从列表中删除重复项

从列表中删除重复项
EN

Stack Overflow用户
提问于 2013-03-19 16:54:36
回答 5查看 5.7K关注 0票数 6

我有一个字符串列表,我需要删除重复的字符串。我尝试过许多事情,例如:

  • 使用listRemoveDuplicates(list,",",true);
  • 使用Ben Nadel's approach
  • 使用ListDeleteDuplicates udf

不幸的是,他们都不起作用。我真的不知道发生了什么事。因此,任何帮助都将不胜感激。

我目前正在使用免费的开发人员版本的ColdFusion 10,以防影响到任何事情。

样本清单:

lacunar_DM,同型半胱氨酸,HTN,烟草,待定,lacunar_DM,同型半胱氨酸,烟草

这是通过在静态列表后面加上从数据库中提取的动态列表来创建的:

代码语言:javascript
复制
<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,同型半胱氨酸,烟草

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-03-25 03:04:26

问题是,您用cfsavecontent创建的列表中有换行符,因为该列表中的每一项都在cfsavecontent中它自己的行上。因为您要加入的另一个列表没有相同的空格,所以不会得到正确的结果。

通常情况下,最好从Cold聚变中的列表中删除不必要的空格。

尝试以下操作,而不是使用cfsavecontent

代码语言:javascript
复制
<cfset lacunar_list = "lacunar_DM,Homocysteine,HTN,Tobacco,undetermined" >
<cfset combination = ListAppend(lacunar_list, lacunar)>
票数 1
EN

Stack Overflow用户

发布于 2013-03-19 17:30:22

我认为你的问题是你的名单上有额外的空白。“同型半胱氨酸”和“同型半胱氨酸”不是相同的值。同样,“烟草”和“烟草”是不同的价值观。

代码语言:javascript
复制
lacunar_DM, Homocysteine, HTN, Tobacco, undetermined ,lacunar_DM,Homocysteine,Tobacco
-----------^-------------^----^--------^------------^------------X------------X
票数 8
EN

Stack Overflow用户

发布于 2013-03-19 18:02:12

如前所述,列表项包含额外的空白。查看列表,所有项目都使用_作为空格,因此最简单的解决方案是先删除空格,然后删除重复的空格。

代码语言:javascript
复制
listRemoveDuplicates( Replace( YourList, " ", "", "ALL" ) )

如果您确实有一些有效的空格,那么在手动编译列表时,我建议在字段周围使用Trim()

代码语言:javascript
复制
YourList = ListAppend( YourList, Trim( ListItem ) )
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15505697

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档