#filter #dataweave
Вопрос:
Можно ли динамически генерировать условие фильтра в DW на основе входных значений?
Что-то вроде этого
payload.entries filter ((item, index) -> dynamicallyGeneratedFilterCondition )
где dynamycallyGeneratedFilterCondition-это переменная, определенная, например, следующим образом
var dynamicallyGeneratedFilterCondition = "item.price == 10"
Ответ №1:
filter
является «динамическим» по определению, потому что 2-й аргумент является лямбда-выражением (он же анонимная функция), которое создается и предоставляется filter
с каждым приложением.
Теперь, основываясь на ваших фрагментах кода, на том, можете ли вы реорганизовать выражение так, чтобы оно отображалось как отдельное объявление, ответ таков: да, вы можете:
%dw 2.0
output application/json
var fn = (v) -> v > 5
---
{
call1: 1 to 10 filter $ > 5,
call2: 1 to 10 filter fn($)
}