попытка удалить элемент из списка

#list #coldfusion #lucee

#Список #coldfusion #люси

Вопрос:

У меня есть код, работающий хорошо, но я пытаюсь внести улучшения

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>
  

Комментарии:

1. Вы имеете в виду, что хотите удалить, IP и IN если IN он найден в вашем списке?

2. да, и то же самое с другими случаями, если я удаляю SK, он должен удалить соответствующий элемент, начиная с S, и то же самое с AB

3. Вы можете размещать ссылки, но, пожалуйста, разместите код и ЗДЕСЬ, чтобы вопрос оставался полезным и для других (не только для вас) еще долго после разрыва ссылки….

Ответ №1:

Вы можете сделать это, предварительно проверив, содержит ли список ваш элемент, используя 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>
  

Комментарии:

1. Это не сработает, если бы у меня было два значения в needle, такие как ‘IN, AS’

2. Сколько разных значений может содержать список «needle» и что это за значения? Каков ожидаемый результат для каждого из этих значений?

3. Изменен код, чтобы он учитывал список аргументов для поиска в исходном списке.