从Coldfusion中的列表中过滤列表

时间:2014-01-13 21:43:43

标签: coldfusion

我有一个主要的id列表(1,2,3,4,5,6,7,8,9,10)

我有一个我想从主列表中删除的ID列表(2,5,8)

在coldfusion的主列表中过滤这些id的最简单方法是什么?

谢谢!

2 个答案:

答案 0 :(得分:6)

ReplaceList:

<cfset l1 = "1,2,3,4,5,6,7,8">
<cfset L2 = "2,5,8">

<cfoutput>#ReplaceList(L1,L2,'')#</cfoutput>

这将为您留下ColdFusion列出的额外逗号。如果要删除它们,请通过数组函数运行它们:

<cfset l1 = "1,2,,3,4,5,6,7,8">
<cfset L2 = "2,5,8">
<cfset L3 = ArrayToList(ListToArray(ReplaceList(L1,L2,'')))>
<cfoutput>#L3#</cfoutput>

答案 1 :(得分:2)

通过Underscore.cfc's without function

,可以在CF 10+和Railo 4+上实现优雅的解决方案
_ = new Underscore();// instantiate the library

// prepare the original list
origList = "1,2,3,4,5,6,7,8,9,10";
origArray = listToArray(origList);

// get a new array of values without 2, 5, or 8
newArray = _.without(origArray, [2, 5, 8]);// returns [1,3,4,6,7,9,10]

然后,如有必要,您可以使用arrayToList()转换回列表。

注意:我写了Underscore.cfc