如何在 Azure 逻辑应用程序中根据条件添加数组元素?

问题描述 投票:0回答:1

我想根据条件将数组的值相加。

{ "name": "alfons", "value": 100, "condValue": "D90" }, 
{ "name": "alfons", "value": 300, "condValue": "D10" }, 
{ "name": "alfons", "value": 200, "condValue": "D90" }, 
{ "name": "max", "value": 600, "condValue": "D90" }, 
{ "name": "max", "value":100, "condValue": "D90" }

对于此示例数组,如果条件值和对象名称匹配,我想添加值。 在这个例子中,我的理想输出是:

{ "name": "alfons", "value": 300, "condValue": "D90" }, 
{ "name": "alfons", "value": 300, "condValue": "D10" }, 
{ "name": "max", "value": 700, "condValue": "D90" }

到目前为止我所做的:我正在 for every 循环中过滤各个名称的有效负载数组(我获取的实际数据是一个包含大约 700 个元素的数组)。我再次过滤此数组以查找另一个循环中的条件值(嵌套在第一个循环中)。

现在我的问题是如何将这些值相加并组成一个新数组,这样它就不会在我面前爆炸,因为我在这里循环了三遍。

我的想法是每次循环完成时编写一个 json 对象并将其附加到数组变量中,但我最终会再次得到大量重复项。

“执行 JavaScript 代码”不幸的是不是一个选项。

arrays json filter logic azure-logic-apps
1个回答
0
投票

是的,使用高级数据操作连接器中的聚合操作。

https://learn.microsoft.com/en-us/connectors/advanceddataoperatio/

https://www.statesolutions.com.au/aggregate/

https://www.statesolutions.com.au/pricing/

注意:在下面的内容中,

Data
变量是您提供的数据(作为数组)。

结果

[
  {
    "name": "alfons",
    "condValue": "D10",
    "value": 300
  },
  {
    "name": "alfons",
    "condValue": "D90",
    "value": 300
  },
  {
    "name": "max",
    "condValue": "D90",
    "value": 700
  }
]
© www.soinside.com 2019 - 2024. All rights reserved.