queryFilter
Фильтрует строки запроса в соответствии с заданными критериями фильтрации
queryFilter(query, function(row [, currentRow] [, query] ){} [, parallel] [, maxThreads]) → returns query
Синтаксис функции-члена
query.filter(function(row [, currentRow] [, query] ){} [, parallel] [, maxThreads])
Аргументы
query query Обязательный
Запрос для фильтрации
callback boolean Обязательный
Замыкание или ссылка на функцию, которая будет вызываться для каждой итерации. Возвращает true, если строку следует включить в отфильтрованный запрос.
Параметры callback:
-
row* struct : Структура со всеми столбцами для текущей итерации -
currentRow* numeric : Номер строки для текущей итерации -
query* query : Ссылка на исходный запрос
parallel boolean
По умолчанию: false
false
Lucee 4.5+ CF 2021+ true, если элементы можно выполнять параллельно
Значения:
truefalse
maxThreads numeric
По умолчанию: 20
20
Lucee 4.5+ CF 2021+ максимальное количество потоков для использования при parallel = true
Совместимость
ColdFusion:
Версия 2016+ В CF2016 и 2018 функция queryFilter изменяла исходный запрос (отчёт об ошибке: https://tracker.adobe.com/#/view/CF-4203366)
Ссылки дополнительная информация о queryFilter
- Map, Reduce и другие функции высшего порядка — введение в map, reduce, filter и функции высшего порядка в целом.
- ColdFusion 2016: функции итерации запросов — обзор функций высшего порядка для запросов
Примеры Пример кода с вызовом функции queryFilter
news = queryNew("id,type,title", "integer,varchar,varchar");
queryAddRow(news,[{
id: 1,
type: "book",
title: "Cloud Atlas"
},{
id: 2,
type: "book",
title: "Lord of The Rings"
},{
id: 3,
type: "film",
title: "Men in Black"
}]);
books = queryFilter(news,function(_news) {
return _news.type is 'book';
});
writeDump(valueList(books.title,', ')); Ожидаемый результат: Cloud Atlas, Lord of The Rings
news = queryNew("id,type,title", "integer,varchar,varchar");
queryAddRow(news,[{
id: 1,
type: "book",
title: "Cloud Atlas"
},{
id: 2,
type: "book",
title: "Lord of The Rings"
},{
id: 3,
type: "film",
title: "Men in Black"
}]);
books = news.filter(function(_news) {
return _news.type is 'book';
});
writeDump(valueList(books.title,', ')); Ожидаемый результат: Cloud Atlas, Lord of The Rings
© 2012–present Foundeo, Inc. and the CFDocs contributors.
Licensed under the MIT License.
ColdFusion is a trademark of Adobe Systems Incorporated.
https://cfdocs.org/queryfilter