我正在循环一个for循环,我想把最小值存储在一个String中。但是当我使用let
关键字时,我认为它是在创建一个局部变量。有没有一种方法可以在for循环中为函数内的全局变量赋值。
let ranking =
{
"DEC": 0,
"SBS" : 1,
"CON" : 2,
"GCS" : 3,
"GMS" : 4,
"FXP" : 5,
"QAN" : 6,
"REF" : 7,
"PRO" : 8
}
let minRankSegment = "DEC"
def findMinRankSegment(segment)
if(get-key($ranking, $segment, 100) <= get-key($ranking, $minRankSegment))
$segment
else
let minRankSegment = $segment
$minRankSegment
{for (.payload)
"data" : {
"segment" :findMinRankSegment(.tag)
}
}
下面是我的输入
{ "payload" :
[
{"tag":"ABC"},
{"tag":"DEC"},
{"tag":"QAN"}
]
}
我期望输出为
{
"data" : {
"segment" : "DEC",
}
}
但事实如此
{
"data" : {
"segment" : "QAN",
}
}
1条答案
按热度按时间s4n0splo1#
我想你可以用这个:
我把for循环的对象改为array for循环,然后得到
tag
,而你的if
表达式是true
。