structFilter
Используется для фильтрации пар «ключ-значение» в структуре.
structFilter(struct,function(key, value [,struct]){} [, parallel] [, maxThreads]) → returns struct
Синтаксис функции-члена
someStruct.filter(function(key, value [,struct]){} [, parallel] [, maxThreads])
Справочник аргументов
struct struct Обязательный
Имя структуры, которую необходимо отфильтровать
callback boolean Обязательный
Замыкание или ссылка на функцию, которая будет вызываться на каждой итерации. Возвращает true, если пару «ключ-значение» в структуре следует включить в отфильтрованную структуру. Поддержка передачи исходной структуры в функцию-замыкание добавлена в CF11 Update 5.
Параметры callback:
-
key* string : Ключ текущей итерации -
value* any : Значение текущей итерации -
struct* struct : Ссылка на исходную структуру
parallel boolean
По умолчанию: false
false
Lucee 4.5+ true, если элементы можно обрабатывать параллельно
Значения:
truefalse
maxThreads numeric
По умолчанию: 20
20
Lucee 4.5+ максимальное количество потоков, используемых при parallel = true
Ссылки дополнительная информация о structFilter
- Map, Reduce и другие функции высшего порядка — введение в map, reduce, filter и функции высшего порядка в целом.
- ColdFusion 11: .map() и .reduce() — обзор новых методов .map() и .reduce(), доступных для массивов, структур и списков
Примеры Пример кода с вызовом функции structFilter
Возьмём структуру элементов с указанием их рейтинга и используем structFilter, чтобы вернуть элементы с рейтингом 3 и выше.
fruitRatings = {apple=4,banana=1,orange=5,mango=2,kiwi=3};
favoriteFruits = structFilter(fruitRatings, function(key, value){
return value >= 3;
});
writedump(favoriteFruits); Ожидаемый результат: {apple=4,orange=5,kiwi=3}
Это тот же пример, но вместо отдельной функции используется функция-член структуры.
fruitRatings = {apple=4,banana=1,orange=5,mango=2,kiwi=3};
favoriteFruits = fruitRatings.filter(function(key, value){
return value >= 3;
});
writedump(favoriteFruits); Ожидаемый результат: {apple=4,orange=5,kiwi=3}
© 2012–present Foundeo, Inc. and the CFDocs contributors.
Licensed under the MIT License.
ColdFusion is a trademark of Adobe Systems Incorporated.
https://cfdocs.org/structfilter