如何在dataweave中减去两个数组

问题描述

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

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

我想得到这个结果:

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

我可以知道如何在dataweave中写入吗

解决方法

执行此操作的许多方法如下:迭代第一个数组,随后遍历数组中的每个对象,然后使用对象中的键(即字母数字字符串),构建目标/所需对象通过减去存储在每个数组中的键的值来构建结构

脚本:

%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
  }
]