基于 Mule 4 中的删除数组从数组中删除对象
Remove object from array based on remove array in Mule 4
我想从删除数组中的用户数组中删除所有对象。请更正下面提到的我的 DataWeave 代码。还提到了预期输出。
%dw 2.0
output application/json
var remove =[
{
"startDate": "2022-04-13",
"objectName": "Account"
}
]
var users = [{
"startDate": 20220412,
"objectName": "Account"
},
{
"startDate": 20220412,
"objectName": "Blanket Agreemt"
}
]
---
users filter ((item, index) -> item.objectName != value.objectName) map (value, key) -> {
"objectName": value.objectName
}
预期输出:
[{
"startDate": 20220412,
"objectName": "Blanket Agreemt"
}]
过滤器无效,问题不明。我会做一个有根据的猜测,即 objective 是 return 列表中的所有元素,它们的 objectName 也存在于 remove
中的一个对象中。后面的map()好像不需要。
为了解决我们可以用multi-value selector (remove.*objectName
) and use contains()函数将所有objectNames收集到一个列表中,以检查users
的当前元素是否存在于remove
数组中。最后需要 not()
来完成 filter
.
的条件
%dw 2.0
output application/json
var remove =[
{
"startDate": "2022-04-13",
"objectName": "Account"
}
]
var users = [
{
"startDate": 20220412,
"objectName": "Account"
},
{
"startDate": 20220412,
"objectName": "Blanket Agreemt"
}
]
---
users
filter ((item, index) -> not (remove.*objectName contains ( item.objectName)))
我想从删除数组中的用户数组中删除所有对象。请更正下面提到的我的 DataWeave 代码。还提到了预期输出。
%dw 2.0
output application/json
var remove =[
{
"startDate": "2022-04-13",
"objectName": "Account"
}
]
var users = [{
"startDate": 20220412,
"objectName": "Account"
},
{
"startDate": 20220412,
"objectName": "Blanket Agreemt"
}
]
---
users filter ((item, index) -> item.objectName != value.objectName) map (value, key) -> {
"objectName": value.objectName
}
预期输出:
[{
"startDate": 20220412,
"objectName": "Blanket Agreemt"
}]
过滤器无效,问题不明。我会做一个有根据的猜测,即 objective 是 return 列表中的所有元素,它们的 objectName 也存在于 remove
中的一个对象中。后面的map()好像不需要。
为了解决我们可以用multi-value selector (remove.*objectName
) and use contains()函数将所有objectNames收集到一个列表中,以检查users
的当前元素是否存在于remove
数组中。最后需要 not()
来完成 filter
.
%dw 2.0
output application/json
var remove =[
{
"startDate": "2022-04-13",
"objectName": "Account"
}
]
var users = [
{
"startDate": 20220412,
"objectName": "Account"
},
{
"startDate": 20220412,
"objectName": "Blanket Agreemt"
}
]
---
users
filter ((item, index) -> not (remove.*objectName contains ( item.objectName)))