有什么方法可以使用带有多级密钥的object.get ..?
我的输入如下:{ "pipelineParameters" : { "k8" : { "NODES" : "1" }, "ec2": { "NODES" : "0" } }
我的数据看起来像{ "key": "pipelineParameters.k8.NODES" }
如何基于多级键从输入中求值?
样本代码
发布于 2020-03-12 20:15:23
object.get函数不支持多级键.如果将键表示为数组,则可以使用walk函数:
input = {
"pipelineParameters" : {
"k8" : {
"NODES" : "1"
},
"ec2": {
"NODES" : "0"
}
}
}例如:
> walk(input, [["pipelineParameters", "k8", "NODES"], "1"])
true
> walk(input, [["pipelineParameters", "k8", "NODES"], x])
+-----+
| x |
+-----+
| "1" |
+-----+
> walk(input, [["pipelineParameters", y, "NODES"], x])
+-----+-------+
| x | y |
+-----+-------+
| "1" | "k8" |
| "0" | "ec2" |
+-----+-------+要将密钥转换为数组,只需编写:
split(key, ".")例如:
split("pipelineParameters.k8.NODES", ".")
[
"pipelineParameters",
"k8",
"NODES"
]把这一切结合在一起:
> walk(input, [split("pipelineParameters.k8.NODES", "."), x])
+-----+
| x |
+-----+
| "1" |
+-----+https://stackoverflow.com/questions/60571982
复制相似问题