arrays - 如何在震动中比较一个变量的值与另一变量的值

标签 arrays json jolt

我有 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-中的doubleSubtractabs函数生成的值覆盖-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/

相关文章:

php - 将 Jquery 数组传递给 MySql

c# - 如何使用 Newtonsoft 反序列化可以是数组或字典的对象?

json - 使用 JSON、Swift 4.1 编码的关键困难

json - 我们如何遍历震动规范?

java - Jolt 将带有数组的对象转换为单个数组

javascript - 使用 map() 调用数组中对象的方法

javascript - 根据Javascript中同一属性的多个值对数组进行排序

java - 对对象的字段进行快速排序

ios - fatal error : Dictionary<String, Any> 不符合 Decodable 因为 Any 不符合 Decodable

json - 基于 JSON 字段的 Jolt 条件标志