首页 > 解决方案 > 如何在dataweave中减去两个数组

问题描述

我是 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 中写入吗

标签: dataweavemule4

解决方案


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

脚本:

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

推荐阅读