试图从列表中删除一个项目
trying to remove an item from List
我的代码运行良好,但我正在尝试进行增强
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>
我的代码运行良好,但我正在尝试进行增强
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>