如果元素存在,Dataweave将键添加到数组

查克兹

如果参数是数组值的元素,则需要将键添加到现有数组。

%dw 2.0
var myArray = [];
var subjects = {
"subject1" = ["sectionA", "sectionB", "sectionC"],
"subject2" = ["sectionB", "sectionD", "sectionE"],
"subject3" = ["sectionC", "sectionF", "sectionG"],
}

fun getSubjects(section) = mapping mapObject ((value, key, index) ->
   if(value contains key) myArray << key
   else myArray 
)

---

{
  "subjects" : getSubjects(var.section) // var.section = sectionA
}

But I'm getting this error "Cannot coerce Array to Object". Is there a better way to do this?
迈克尔·琼斯

认为这就是您想要做的;因为数据在dataweave中是不可变的,所以如果要在更改数组内容等内容的同时迭代集合,则必须使用诸如reduce之类的方法。

%dw 2.0

var subjects = {
    "subject1": ["sectionA", "sectionB", "sectionC"],
    "subject2": ["sectionB", "sectionD", "sectionE"],
    "subject3": ["sectionC", "sectionF", "sectionG"]
}

var section = "sectionA"

fun getSubjects(section) = subjects pluck $$ reduce ((subject, myArray=[]) ->
    if (subjects[subject] contains section) myArray << subject
    else myArray
)

---
{
    subjects: getSubjects(section)
}

产量:

{
  subjects: [
    "subject1"
  ]
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将元素添加到数组(如果存在),不添加,如果存在,则更新

来自分类Dev

MongoDb:将元素添加到数组(如果不存在)

来自分类Dev

将键添加到php数组

来自分类Dev

将键添加到 Javascript 数组

来自分类Dev

将元素添加到数组

来自分类Dev

将元素添加到numpy数组

来自分类Dev

将元素添加到空数组

来自分类Dev

将元素添加到数组的开头。

来自分类Dev

随后将元素添加到数组

来自分类Dev

动态将元素添加到数组

来自分类Dev

无法将元素添加到数组

来自分类Dev

将数组元素添加到PSObject

来自分类Dev

将元素添加到多维数组

来自分类Dev

将元素添加到数组的末尾

来自分类Dev

随后将元素添加到数组

来自分类Dev

将元素添加到 Firestore 数组

来自分类Dev

如果键存在,则将值添加到哈希

来自分类Dev

仅当元素不存在时才将元素添加到C数组

来自分类Dev

F#将元素添加到列表(如果不存在)

来自分类Dev

Bash:将值添加到关联数组,而键=>值已存在

来自分类Dev

mongodb mongoose-如果字段不存在,如何将文档添加到数组

来自分类Dev

将多个返回的MySQL行添加到PHP中的同一数组键元素

来自分类Dev

Mongodb:如果值不存在,如何将值添加到数组,但如果值存在,则更新值

来自分类Dev

Python:将dict值追加到列表(如果已存在)会添加到所有键的值,而不是

来自分类Dev

无法将外键添加到存在表

来自分类Dev

无法将外键添加到存在表

来自分类Dev

将索引添加到表(如果不存在)

来自分类Dev

将类添加到链接到(如果存在)

来自分类Dev

将类添加到链接到(如果存在)