比较m子4中的两个值

问题描述

我正在尝试比较选择连接器中的以下两个值,并尝试从值2和值1的值中捕获缺失的值

值1:

[
  {
    "FName": "salesforce.com"
  },{
    "FName": "jobs"
  },{
    "FName": "2020"
  },{
     "FName": "06-2020"   
  }
]

值2:

[
  {
    "name": "salesforce.com"
  },{
    "name": "jobs"
  }
]

Am使用选择条件vars.NameVar == vars.SplitName

我需要捕获值2中缺少的值“ FName”:“ 2020”和“ FName”:“ 06-2020”

解决方法

脚本:

%dw 2.0
output application/json
import * from dw::core::Arrays
var a=[
  {
    "FName": "salesforce.com"
  },{
    "FName": "jobs"
  },{
    "FName": "2020"
  },{
    "FName": "06-2020"   
  }
]
var b=[
  {
    "name": "salesforce.com"
  },{
    "name": "jobs"
  }
]
---
leftJoin(a,b,(x) -> x.FName,(x) -> x.name) 
    filter !$.r? 
        map $.l 

输出:

[
  {
    "FName": "2020"
  },{
    "FName": "06-2020"
  }
]
,

尝试此脚本。这只会显示从 value1 value2

不匹配的项目

输入:

%dw 2.0
var value1=[
  {
    "FName": "salesforce.com"
  },{
     "FName": "06-2020"   
  }
]
var value2=[
  {
    "name": "salesforce.com"
  },{
    "name": "jobs"
  }
]

output application/json
---
value1[?(!(value2.name contains $.FName))]

输出:

[
  {
    "FName": "2020"
  },{
    "FName": "06-2020"
  }
]

诀窍是使用包含!符号。如果删除 ,则会颠倒逻辑,仅显示匹配的值。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...