配列操作の一覧
1. 配列の初期化
1.1 変数 > 「配列を初期化する」アクション
1.2. createArray()
@{createArray(10,20,30,40,50)}
2. 要素の参照
2-1. 最初の要素の参照:first()
@{first(createArray(10,20,30,40,50))}
2-2. 最後の要素の参照:last()
@{last(createArray(10,20,30,40,50))}
2-3. N番目の要素の参照:[]
配列のインデックスは0オリジン
@{createArray(10,20,30,40,50)[3]}
3. 要素の追加・削除
3-1. 変数 > 「変数配列に追加」アクション
3-2. 配列の結合(重複削除):union()
@{union(variables('Array1'), variables('Array2'))}
3-2. 先頭からN件:take()
@{take(variables('Array1'), 3)}
3-3. 末尾からN件:skip()
@{skip(variables('Array1'),sub(length(variables('Array1')),3))}
4. 集計
4-1. 配列の長さ:length()
@{length(variables('Array1'))}
4-2. 要素の結合:join()
@{join(variables('Array1'), ',')}
4-3. 合計
sum()
は用意が無いため、for each + 「変数の値を増やす」アクションで足していく
4-4. 最大値:max()
@{max(variables('Array1'))}
4-5. 最大値:min()
@{min(variables('Array1'))}
5. 検索
5-1. 指定の値が含まれるか:containts()
@{contains(variables('Array1'), 30)}
5-2. 連想配列のキーでフィルター:「Filter Array」アクション

■入力
[
{
"first": "tanaka",
"last": "tarou"
},
{
"first": "tanaka",
"last": "jirou"
},
{
"first": "saitou",
"last": "koji"
},
{
"first": "saitou",
"last": "yuki"
}
]
■出力
[
{
"first": "tanaka",
"last": "tarou"
},
{
"first": "tanaka",
"last": "jirou"
},
]
6. ソート
6-1. 昇順ソート:sort(array)
@{sort(createArray(30,10,50,40,20))}
6-2. 降順ソート:reverse(array)
@{reverse(createArray(30, 10, 50, 40, 20))}
6-3. 連想配列のキーで昇順ソート:sort(array, key)
@{sort(variables('Array2'), 'Name')}
用意されていない配列操作
power automateの配列要素の追加・削除機能に乏しい。
・k番目の要素のみを削除する
for eachでk番目の要素であれば何もしない、それ以外の要素は配列の追加アクションを利用して、配列を再編成する
・k番目に要素を追加する
- for eachで[1 ~ k-1]番目の要素をnew listに追加
- 新しい要素をnew listに追加
- [k ~ n]番目の要素をnew listに追加
・K番目の要素を更新する
配列に対する代入はできないので、やはりfor eachで配列の再編成が必要
・2つの配列を結合する
for eachでarray2の各要素に対してarray1の「変数配列に追加」アクションを実行する
さいごに
- 通常のプログラミング言語に比べると、Power Automateの配列操作の手段がかなり貧弱
- 配列をガチャガチャ操作したいなら、Office Scriptなどに任せよう(可能であれば)
- Power Automateの配列は末尾の追加だけはできる、ある種 const 、readonlyなオブジェクトと考えよう