Mulesoft列表中从1到100的数字序列

时间:2019-02-14 07:37:13

标签: mule-studio mule-component mule-esb mulesoft

我有一个带有#[[1,2,3,4]之类的序列的列表。我想用1到100的数字顺序定义另一个列表。我尝试使用#[[1..100]],但这是不允许的。我如何在mulesoft中实现这一目标?

2 个答案:

答案 0 :(得分:1)

在m子4和dataweave 2中,..运算符现在用于不同的用例。对于范围,请改用to

#[1 to 100]

在m子3和dataweave 2中,使用..但如果要将其用作内联表达式,则需要将其包装在dw函数中

    #[dw('[1..100]', 'application/java')]

或将transform-message组件用于非内联转换

答案 1 :(得分:0)

尽管可以简单地使用范围运算符 to 来生成一个大的数字列表。还有其他方法可以实现这一点,尤其是使用 lambda 变量转换函数。

要生成从 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)