Последовательность чисел от 1 до 100 в списке в Mulesoft
У меня есть список с такой последовательностью, как #[[1,2,3,4]. Я хочу определить другой список с последовательностью чисел от 1 до 100. Я пытался использовать #[[1..100]], но это не разрешено. Как я могу добиться этого в Mulesoft?
2 ответа
В муле 4 и в dataweave 2 ..
Оператор теперь используется для другого варианта использования. Для диапазона использования to
вместо:
#[1 to 100]
В mule 3 и dataweave 2 используйте.. но если вы хотите использовать его как встроенное выражение, вам нужно обернуть его в dw
функция
#[dw('[1..100]', 'application/java')]
Или используйте компонент transform-message для не встроенных преобразований
Хотя можно просто использовать оператор диапазона
to
для создания большого списка чисел. Есть и другие способы добиться этого, особенно используя лямбда-переменные, превращенные в функции.
Чтобы сгенерировать числа, начинающиеся с 1, мы можем попробовать рекурсивный вызов функции, как показано ниже.
%dw 2.0
output application/json
var nums = (k: Number, arr: Array<Number>=[]) -> if(k > 0) nums(k-1, (arr + k)) else arr[-1 to 0]
---
nums(4)
Для генерации чисел на основе начального и конечного диапазона; попробуйте ниже
%dw 2.0
output application/json
var nums = (j, k: Number, arr: Array<Number>=[]) -> if(k > (j-1)) nums(j,k-1, (arr + k)) else arr[-1 to 0]
---
nums(7, 11)