我有 2 个名为“score”和“scoreRange”的变量,假设“score”值为 0.185,我想将其与 0.3 和 0.9 进行比较。我的情况如下。
if score is less than 0.3 (score <0.3) -> mark scoreRange as LOW,
0.3 to 0.9 (0.3 <= score < 0.9) --> mark scoreRange as MEDIUM
and larger than 0.9 (score >= 0.9) --> mark scoreRaneg as HIGH
如何比较 0.185 与 0.3 或 0.9 的震动。 我尝试创建一个值为 [0.3, 0.9] 的数组,并将“分数”添加到该数组“数组”:[ 0.3, 0.9, 0.185 ]。然后取出该数组的最小值和最大值。如果 Score 位于 min 位置或等于 min,则 ScoreRange 较低。如果 Score 位于 max 位置或等于 max,则 ScoreRange 较高。如果两者都失败则中等。但目前我不知道如何与普通值或数组值进行比较。
我的输入(不相关)
{
"sampleArray": [
4,
2,
8
]
}
尝试了规范
[
{
"operation": "default",
"spec": {
"array": [0.3, 0.9]
}
},
{
"operation": "modify-overwrite-beta",
"spec": {
"score": 0.185,
"array": {
"[2]": "@(2,sumIntData)"
},
"minAB": "=min(@(1,array))",
"maxAB": "=max(@(1,array))"
}
}
]
我当前的输出。
{
"sampleArray" : [ 4, 2, 8 ],
"array" : [ 0.3, 0.9, 0.185 ],
"score" : 0.185,
"minAB" : 0.185,
"maxAB" : 0.8
}
我是震动新手。任何比较值(value)观的指导都会对我有帮助。 以及如何从 jolt 数组中获取特定值。来自 jolt 的 elementAt 选项没有帮助
最佳答案
我想你可以有这样的输入
{
"score": 0.185,
"sampleArray": [
0.3,
0.9
]
}
并通过使用shift转换,具有条件比较通过使用modify-中的doubleSubtract和abs函数生成的值覆盖-beta转换如
[
{
"operation": "modify-overwrite-beta",
"spec": {
"minAB": "=min(@(1,sampleArray))",
"maxAB": "=max(@(1,sampleArray))",
"diff1": "=doubleSubtract(@(1,score),@(1,minAB))",
"diff2": "=doubleSubtract(@(1,score),@(1,maxAB))",
"adiff1": "=abs(@(1,diff1))",
"adiff2": "=abs(@(1,diff2))",
"absdiff1": "=doubleSubtract(@(1,diff1),@(1,adiff1))",
"absdiff2": "=doubleSubtract(@(1,diff2),@(1,adiff2))"
}
},
{
"operation": "shift",
"spec": {
"absdiff1": {
"0.0": {
"@(2,absdiff2)": {
"0.0": {
"#HIGH": "scoreRange"
},
"*": {
"#MEDIUM": "scoreRange"
}
}
},
"*": {
"#LOW": "scoreRange"
}
}
}
}
]
关于arrays - 如何在震动中比较一个变量的值与另一变量的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68503840/