Power Automateの配列(Array)で遊んでみよう!-その2

前回の記事では、Power Automate における配列について説明し、様々な配列操作について検証しました。

この記事では、Power Automate フローでよく使用されるその他の操作をいくつか紹介します。前回の記事の続きなので、同じ配列と要素を使用します。
Array:  [“川”, 45, true, { “名”: “山田” }, [1, 2, 3], 45, 42]


“川” → String
45 → Int
true → Boolean
{ “名”: “山田” } → Object
[1, 2, 3] → Array
42 → Integer

1. 配列要素の順序を反転する
Power Automateでは、reverse()関数を使って配列内の要素の順序を反転できます。この関数は、要素の順序が反転された新しい配列を出力します。
入力: [“川”, 45, true, { “名”: “山田” }, [1, 2, 3], 45, 42]
Power Automate 式: reverse(outputs(‘Array’))
出力:  [42, 45, [1, 2, 3], {“名”: “山田”}, true, 45, “川”]

2. JSON オブジェクトからの値の抽出。
配列内の要素のインデックスと JSON オブジェクトのキーを使用して、JSON オブジェクトから値を抽出できます。
入力: [“川”, 45, true, { “名”: “山田” }, [1, 2, 3], 45, 42]
Power Automate 式: outputs(‘Array’)[3][‘名’]
ここで、配列インデックス ‘3’ は JSON オブジェクト: { “名”: “山田” }であり、キーは “名” です。
出力: 山田

3. 配列から重複した要素を削除する
配列に存在する重複要素は、関数 union() を使用して削除できます。
入力: [“川”, 45, true, { “名”: “山田” }, [1, 2, 3], 45, 42]
Power Automate 式:union(outputs(‘Array’),outputs(‘Array’))
出力: [“川”,45, true, { “名”: “山田” }, [1, 2, 3], 42]
45 は配列内で 2 回繰り返され、union() の使用中にそのうちの 1 つが削除されます。

4. 配列から特定の要素を削除します。
Power Automateには、配列から要素を削除するための特別な関数はありません。代わりに、「アレイのフィルター処理」アクションで「次の値に等しくない」演算子を使用することで、要素を削除できます。たとえば、フィルタリングされたアクションを使用して配列から 45 を削除します。


入力: [“川”, 45, true, { “名”: “山田” }, [1, 2, 3], 45, 42]
出力: [“川”, true, { “名”: “山田” }, [1, 2, 3], 42]

5. 新しい要素を配列に追加します。
Power Automateでは、他のプログラミング言語のように既存の配列に要素を直接追加したりプッシュしたりすることはできません。代わりに、新しい要素を含む新しい配列を作成し、それを既存の配列に追加する必要があります。
たとえば、配列に要素「Yashoda」を追加するには、「Yashoda」を含む新しい配列を作成し、それを元の配列にプッシュします。
既存の配列に新しい配列を追加するには、関数 union() を使用します。この関数は重複する要素を削除し、新しい配列から要素を追加します。


入力: [“川”, 45, true, { “名”: “山田” }, [1, 2, 3], 45, 42]
Power Automate 式:union(outputs(‘Array’),outputs(‘Array1’))
出力: [“川”, true, { “名”: “山田” }, [1, 2, 3], 42,”Yashoda”]

この記事では、Power Automate フローで作業する際によく使用されるさまざまな配列操作について説明しました。
お読みいただきありがとうございました!次回は、Microsoft 365、Power Apps、Power Automate に関連するトピックをご紹介します。

参考:
https://learn.microsoft.com/en-us/power-automate/data-operations
https://learn.microsoft.com/en-us/azure/logic-apps/expression-functions-reference#array