Mule 如何在Dataweave中识别数组中的最后一个元素

Mule 如何在Dataweave中识别数组中的最后一个元素,mule,dataweave,Mule,Dataweave,我有一个dataweave表达式来创建自定义字符串,但我不想将| |附加到输入数组的最后一个元素。我怎样才能做到呢 %dw 2.0 output application/json var arr = ["ABC","XYZ"] --- arr map((item,index) -> { index: "custom ('" ++ item ++ "'); &quo

我有一个dataweave表达式来创建自定义字符串,但我不想将| |附加到输入数组的最后一个元素。我怎样才能做到呢

    %dw 2.0
    output application/json
    var arr = ["ABC","XYZ"]
    ---
    arr  map((item,index) -> {
        index: "custom ('" ++ item ++ "'); " ++ "||"
    })
这有帮助吗

脚本

%dw 2.0
output application/json
var arr = ["ABC","XYZ"]
---
arr  map((item,index) -> {
    index: if((index) < (sizeOf(arr)-1)) "custom ('" ++ item ++ "'); " ++ "||" else item
})
[
  {
    "index": "custom ('ABC'); ||"
  },
  {
    "index": "XYZ"
  }
]
这有帮助吗

脚本

%dw 2.0
output application/json
var arr = ["ABC","XYZ"]
---
arr  map((item,index) -> {
    index: if((index) < (sizeOf(arr)-1)) "custom ('" ++ item ++ "'); " ++ "||" else item
})
[
  {
    "index": "custom ('ABC'); ||"
  },
  {
    "index": "XYZ"
  }
]

您还可以尝试以下方法:

%dw 2.0
output application/json
import * from dw::core::Arrays
var arr = ["ABC","XYZ"]
---
take(arr,(sizeOf(arr)-1)) map (
     $ ++ "||" // do your manipulation to modify the custom entry
)

take
已记录在案

您也可以尝试以下方法:

%dw 2.0
output application/json
import * from dw::core::Arrays
var arr = ["ABC","XYZ"]
---
take(arr,(sizeOf(arr)-1)) map (
     $ ++ "||" // do your manipulation to modify the custom entry
)

take
被记录在案

出于好奇,您是否将这个结果数组合并成一个字符串?您的问题似乎表明函数的最终目标是返回字符串。如果您是,您可以只
map
,然后
joinBy

%dw 2.0
output application/json
var arr = ["ABC","XYZ", "DKJL"]
---
arr map "custom($($));" joinBy " || "
输出

“自定义(ABC);| |自定义(XYZ);| |自定义(DKJL);”
如果像Salim的回答一样,您不应该在custom中包装最后一个值,您还可以利用reduce的默认行为:

%dw 2.0
output application/json
var arr = ["ABC","XYZ", "DKJL"]
---
arr[-1 to 0] reduce ("custom($($)); || " ++ $$)
输出

“定制(ABC);| |定制(XYZ);| | DKJL”

出于好奇,您是否将得到的数组合并成字符串?您的问题似乎表明函数的最终目标是返回字符串。如果您是,您可以只
map
,然后
joinBy

%dw 2.0
output application/json
var arr = ["ABC","XYZ", "DKJL"]
---
arr map "custom($($));" joinBy " || "
输出

“自定义(ABC);| |自定义(XYZ);| |自定义(DKJL);”
如果像Salim的回答一样,您不应该在custom中包装最后一个值,您还可以利用reduce的默认行为:

%dw 2.0
output application/json
var arr = ["ABC","XYZ", "DKJL"]
---
arr[-1 to 0] reduce ("custom($($)); || " ++ $$)
输出

“定制(ABC);| |定制(XYZ);| | DKJL”

对于给定的数组,是否将| |附加到数组的最后一个元素?不,我不想将| |附加到最后一个元素,但它必须存在于所有其他元素中。对于给定的数组,是否将| |附加到数组的最后一个元素?不,我不想将| | |附加到最后一个元素,但它必须存在于所有其他元素中