#dataweave #mule4
#dataweave #mule4
Вопрос:
inputArray = ["cat", "bat", "mat"]
configuredArray = ["dog", "elephant", "fox", "cat"]
inputArray
и configuredArray
являются строковыми массивами переменной длины.
Если какой-либо один элемент inputArray
присутствует в configuredArray
, я хотел бы установить флаг bloolean. Как мне его записать Dataweave 2.0
? Заранее спасибо.
Ответ №1:
Вы могли filter
бы использовать функции contains
и и сделать что-то вроде этого. Также оставляет вас с функцией повторного использования.
%dw 2.0
output application/json
fun any(left: Array, right: Array) =
sizeOf(left filter (right contains $)) > 0
---
["cat", "bat", "mat"] any ["dog", "elephant", "fox", "cat"]
Комментарии:
1. дополнительная точка для использования двоичной функции в качестве оператора.
2. Отличное и краткое решение
3. Имейте в виду, что этот метод не имеет логики короткого замыкания, поэтому для особенно больших полезных нагрузок это не будет самым быстрым.
Ответ №2:
%dw 2.0
output application/json
var arr1 = ["cat", "bat", "mat"]
var arr2 = ["dog", "elephant", "fox", "cat"]
---
sizeOf(arr1 reduce (item, acc = []) -> if (arr2 contains item) acc item else acc) >0