Spec-Zone.ru › ColdFusion

queryFilter

Фильтрует строки запроса в соответствии с заданными критериями фильтрации

queryFilter(query, function(row [, currentRow] [, query] ){} [, parallel] [, maxThreads]) → returns query

Синтаксис функции-члена

query.filter(function(row [, currentRow] [, query] ){} [, parallel] [, maxThreads])

  • CF2016+
  • Lucee
  • BL 1.0.0+
  • См. также: querySome queryReduce queryMap queryEach

    Аргументы

    query query
    Обязательный

    Запрос для фильтрации

    callback boolean
    Обязательный

    Замыкание или ссылка на функцию, которая будет вызываться для каждой итерации. Возвращает true, если строку следует включить в отфильтрованный запрос.

    Параметры callback:

    • row* struct : Структура со всеми столбцами для текущей итерации
    • currentRow* numeric : Номер строки для текущей итерации
    • query* query : Ссылка на исходный запрос

    parallel boolean
    По умолчанию: false

    Lucee 4.5+ CF 2021+ true, если элементы можно выполнять параллельно
    Значения:
    • true
    • false

    maxThreads numeric
    По умолчанию: 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

    Spec-Zone.ru

    Настройки Оффлайн Что нового Помощь О нас
    Spec-Zone .ru
    спецификации, руководства, описания, API