「気ままに勉強会 #09」ノート

概要

「気ままに勉強会 #09」Power Automateで配列を操る -関数編で勉強させていただきました。Miyake Mitoさんが解説してくださいました。その時の資料と解説をノートにしました。

関数

配列を作る

# array() 配列単体値
array(6)

[
  6
]

# createArray() 配列複数値
createArray(5,3,1)

[
  5,
  3,
  1
]

配列を調べる

# contains() コレクションに対象の値を含むか
contains(outputs('createArray()_配列複数値'), 3)

true

# Empty()  コレクションが空か
empty(outputs('createArray()_配列複数値'))

false

# length() 文字数または配列の項目数
length(outputs('createArray()_配列複数値'))

3

配列から要素を取得

# first() 文字列または配列から最初の項目を取得
first(outputs('createArray()_配列複数値'))

5

# last() 文字列または配列から最後の項目を取得
last(outputs('createArray()_配列複数値'))

1

# 配列からIndexで項目を取得
outputs('createArray()_配列複数値')[1]

3

# skip() 文字列または配列からn個目以降の項目を取得
skip(outputs('createArray()_配列複数値'), 2)

[
  1
]

# take() 文字列または配列の先頭からn個の項目を取得
take(outputs('文字列'),2)

ab

# join() 配列を指定した文字列で結合 戻り値は文字列
join(outputs('createArray()_配列複数値'), ',')

5,3,1

複数配列から要素を取得

# intersection() 複数配列から共通する要素を取得
intersection(outputs('array()_配列単体値'), outputs('createArray()_配列複数値'))

[] ※表示は「クリックしてダウンロードします」になっていた

# union() 複数配列から全ての要素を取得する
union(outputs('array()_配列単体値'), outputs('createArray()_配列複数値'))

[
  6,
  5,
  3,
  1
]

文字列の加工

# split() 文字列を指定した文字で分割し配列にする
split(outputs('文字列'),'c')

[
  "ab",
  "de"
]

# replace() 文字列の指定した文字を置換
replace(outputs('文字列'),'a','z')

zbcde

配列から要素を取得 数値

# min() 配列要素の最小値
min(outputs('createArray()_配列複数値'))

1
# max() 配列要素の最大値
max(outputs('createArray()_配列複数値'))

5

# range() 整数の配列で範囲を返す
range(0,10)

[
  0,
  1,
  2,
  3,
  4,
  5,
  6,
  7,
  8,
  9
]

JSONオブジェクトの加工

# JSON

{
  "name": "a",
  "value": 10
}

# addProperty() JSONに要素追加
addProperty(outputs('JSON'), 'type', 'c')

{
  "name": "a",
  "value": 10,
  "type": "c"
}

# setProperty() JSON要素内の値変更
setProperty(outputs('addProperty()_JSONに要素追加'), 'type', 'a')

{
  "name": "a",
  "value": 10,
  "type": "a"
}

# JSON子要素あり docs sample
{
   "customerName": {
      "firstName": "Sophia",
      "surName": "Owen"
   }
}
# setProperty() addProperty複合() JSON子要素に追加
setProperty(outputs('JSON子要素あり'), 'customerName', addProperty(outputs('JSON子要素あり')['customerName'], 'middleName', 'Anne'))

{
  "customerName": {
    "firstName": "Sophia",
    "surName": "Owen",
    "middleName": "Anne"
  }
}

応用

HiroさんのPower Automateでのソート (Loopなし)Power Automate で配列をシャッフルする方法をご紹介いただきました。

やってみるとわかるその凄さ!

まとめ

はずかしながらApply for eachのままのフローが結構あります。手をうごかし復習したいと思い参加させて頂きました。今後のリファクタリングに活かしたいと思います。Miyake Mitoさんと主催者のたなさんに感謝です!