如何使用包含将一个数组的属性值与另一个数组逻辑应用程序表达式进行比较?

时间:2019-07-17 11:51:47

标签: azure azure-logic-apps

我有两个数组变量和值,如下所示

arraydata1 =

[
  {
    "id": "1",
    "name": "aaa"
  },
  {
    "id": "2",
    "name": "bbb"
  },
  {
    "id": "3",
    "name": "ccc"
  },
  {
    "id": "4",
    "name": "ddd"
  },
 {
    "id": "14",
    "name": "bbb"
  }
]

arraydata2 =

[
  {
    "id": "111",
    "tablename": "aaa"
  },
  {
    "id": "222",
    "tablename": "bbb"
  }
]

输出-

[
       {
        "id": "1",
        "name": "aaa"
      },
      {
        "id": "2",
        "name": "bbb"
      },
     {
        "id": "14",
        "name": "bbb"
      },
    ]

使用2 foreach也可以实现这一点,但是比较需要时间。

还尝试使用带for-each connector和内部使用contains表达式来比较name and tablename,但对于所有值来说都是错误的。

contains(variables('arraydata2'),items('For_each')?['tablename'])

  

我们可以不用两个foreach就可以做到吗

enter image description here

1 个答案:

答案 0 :(得分:1)

//每个循环更新为一个:

以下内容将返回2个对象,您不会收到true的答复,但是将拥有这些对象。

items('For_each')['name']item()['tablename']

enter image description here