【问题标题】:how to subtract two array in dataweave如何在dataweave中减去两个数组
【发布时间】:2021-01-03 04:26:08
【问题描述】:

我是 mulesoft 开发的新手,我想在 dataweave 中减去两个数组。 两个数组在下面

var array1 = [ {
    "FF15974433790786634518": 2 },
    {"FF15974433790786634519": 2  },
    { "FF15974433790786634520": 1 }   ]
   
var array2 = [ {"FF15974433790786634518": 1 },
  {"FF15974433790786634519": 2  },
  { "FF15974433790786634520": 1 }   ]

我想得到这个结果:

 [ {"FF15974433790786634518": 1 },
  {"FF15974433790786634519": 0  },
  { "FF15974433790786634520": 0 }  ]

我可以知道如何在 dataweave 中编写

【问题讨论】:

    标签: dataweave mule4


    【解决方案1】:

    许多方法可以做到这一点,其中一个如下:迭代第一个数组,随后在数组中的每个对象上迭代,然后使用对象中的键(这是字母数字字符串),构建目标/所需的对象通过减去存储在每个数组中的键的值来构造结构

    脚本:

    %dw 2.0
    output application/json
    var array1 = [ 
        {"FF15974433790786634518": 2},
        {"FF15974433790786634519": 2},
        { "FF15974433790786634520": 1}   
        ]
       
    var array2 = [ {"FF15974433790786634518": 1 },
      {"FF15974433790786634519": 2  },
      { "FF15974433790786634520": 1 }   ]
    
    
    ---
    (array1 map {
        temp: $ mapObject {
            ($$):(array1[($$)][0] - array2[($$)][0])
        }
    }.temp)
    

    输出:

    [
      {
        "FF15974433790786634518": 1
      },
      {
        "FF15974433790786634519": 0
      },
      {
        "FF15974433790786634520": 0
      }
    ]
    

    【讨论】:

    • 非常感谢。我发现我可以使用 array1-array2 来获取方差项
    • array1 - array2 将为您提供与 array2 相同的 array1 元素。 array2 中的任何额外元素都将从最终结果中省略,而如果 array1 中有额外元素,它们将成为最终结果的一部分。
    • 抱歉应该是array1 --array2
    • 如果您发现它符合您的目的,请务必接受。 @maomifadacai
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多