问题描述
我的代码运行良好,但是我正在尝试进行增强
https://trycf.com/gist/5fdbccd52121856991e6fe3f82307d34/lucee5?theme=monokai
在上面,我正在尝试如果列表中已删除的项目是IN
,它也应该删除以I
字母开头的其他项目
来源
<cfscript>
i = 'AS,AK,SK,SB,IN,IP';
Y = 'IN';
local.X = [];
listEach(I,function(value,index) {
if (!listFindNoCase(Y,value)) {
arrayAppend(X,value);
}
});
dump(x);
</cfscript>
解决方法
您可以这样操作:先使用listFindNoCase
检查列表是否包含元素,然后使用listFilter
过滤新列表中不需要的项目,如下所示:
<cfscript>
originalList = 'AS,AK,SK,SB,IN,IP';
needle = 'IN,AS';
newList = originalList;
listEach(needle,function(needle) {
if (listFindNoCase(newList,needle)) {
newList = listFilter(newList,function(value) {
return lcase(left(value,1)) != lcase(left(needle,1));
});
}
});
dump(newList);
</cfscript>