2014-01-13 3 views
1

У меня есть основной список идентификаторов (1,2,3,4,5,6,7,8,9,10)Фильтрация списка из списка в Coldfusion

И у меня есть список идентификаторов Я хочу удалить из основного списка (2,5,8)

Что является самым простым способом фильтрации этих идентификаторов из основного списка в coldfusion?

Спасибо!

+0

Вы можете использовать функцию Replace http://livedocs.adobe.com/coldfusion/8/htmldocs/help.html?content=functions_m-r_32.html –

+2

Нет, заменить поиск подстрок, а не целых элементов списка. Возможно, вы имели в виду [ReplaceList] (http://livedocs.adobe.com/coldfusion/8/functions_m-r_33.html)? Кроме того, cflib.org также является хорошим местом для проверки такого рода задач http://cflib.org/udf/listRemoveList – Leigh

+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> 
+0

Удивительный, я не сделал знать об этой функции. Благодаря! – RandyLahey

2

Элегантное решение возможно на CF 10+ и Railo 4+ через Underscore.cfc's without function:

_ = 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

Смежные вопросы