groovy - 如何删除 Groovy 映射中的值
问题描述
说我有这张地图
def map = [:]
map.put("us-east-1", ["vol-66c16ec2", "vol-654ce2c1", "vol-01234567"])
map.put("us-east-2", ["vol-12345678", "vol-87654321", "vol-abcdefgh"])
这导致...
{
"us-east-1" : [
"vol-66c16ec2", "vol-654ce2c1", "vol-01234567"
],
"us-east-2" : [
"vol-12345678", "vol-87654321", "vol-abcdefgh"
]
}
我如何遍历地图,所以当 value = "vol-abcdefgh" 我想删除该条目时。所以伪代码是...
for (it=iterate_through_map) {
if (it == "vol-abcdefgh") {
remove_entry(it)
}
}
结果地图现在是......
{
"us-east-1" : [
"vol-66c16ec2", "vol-654ce2c1", "vol-01234567"
],
"us-east-2" : [
"vol-12345678", "vol-87654321"
]
}
解决方案
考虑以下内容(编辑:通过dmahapatro进行了优雅的改进):
def target = 'vol-abcdefgh'
def map2 = map.collectEntries { k, v -> [k, v - target] }
我已经确认它可以在 Jenkins 管道中工作(与扩展运算符不同*
)。
推荐阅读
- soundcloud - SoundCloud API 的下载端点抛出 403
- python - 错误:运行 f1_score 时,“str”和“int”实例之间不支持“<”
- r - 从列中删除元素“*”和“字母”
- powershell - 安装失败或安装完成
- java - 为什么不考虑输入的第一个值?
- php - 为什么我的 html/css/php 表单只会在电子邮件地址有效时才向我发送电子邮件?无论如何我都想要一封电子邮件
- ios - 计算ios中日期范围之间的当前周数
- java - 如何使用转换器?
- xcode - 在模拟器中测试丰富的通知
- flutter - 我想知道为什么这个按钮不起作用。我的代码错了吗?