もう一人のY君

iPhoneアプリのレビューやアップデートレビューなどを書いています. たまに数学の記事も書きます.

もう一人のY君 MENU  MENU

【iPhoneショートカット】同じキーの値が複数ある場合について【辞書アクション】

f:id:thetheorier:20210401084649p:plain

 以前少し触れたことですが改めて言及しておきます.

 

 

ショートカット

ショートカット

  • Apple
  • 仕事効率化
  • 無料

※価格は記事執筆時のものです. 現在の価格はApp Storeから確認ください.

 レビュー時のiOSバージョン : iOS14.4.2

 

 

スポンサーリンク

 

 

 

特定の画像を表示するには

f:id:thetheorier:20210401084823p:plain

 「辞書」アクションの性質として, 同一のキーが複数存在する場合, 一番上のものだけが適用されます.

 

 

f:id:thetheorier:20210401084936p:plain

 画像のように辞書の組をひっくり返すと出力が変わるのが分かります.

 なのでレシピによってはこれを逆に利用する, 例えば適用する値を並び替えで素早く切り替えることができます.

 しかし大抵はどの値もちゃんと拾えないと困ります.

 

 

f:id:thetheorier:20210401085232p:plain

 これを解決するには, キーの値を「テキスト」や「数字」にするのではなく「配列」にすることです.

 すると値には項目数のみ表示されます.

 

 

f:id:thetheorier:20210401085356p:plain

 「xx項目」の部分をタップし, 表示されたページにテキストや数字を追加していくことで同一のキーで複数の値を扱うことが可能となります.

 

 

f:id:thetheorier:20210401085517p:plain

 これで同一キーに対応する値が取り出せます.

 

 

使用例

f:id:thetheorier:20210401085754p:plain

 キーワード検索してヒットしたキーに対応する値を表示することを考えてみます.

 配列数が1の場合はそのまま表示, 複数ある場合は選ばせてから表示します.

 まず適当な配列の組を作っておきます.

 

 

f:id:thetheorier:20210401085957p:plain

 「入力を要求」でキーワードを入力します.

 最初の辞書アクションにあるすべてのキーを「ファイルにフィルタを適用」で入力したキーワードを含むキーのみフィルタした上でアルファベット順に並び替えて, これを「リストから選択」で一つを選ばせます.

 選択したキーに対応する値を取得し, その項目数を数えます.

 

 

f:id:thetheorier:20210401090353p:plain

 項目数が1かどうかでif文を追加します.

 項目数が1ならそのキーの値をそのまま表示します.

 1でない(=2つ以上)ならキーの値をもとに「リストから選択」で一つだけ選ばせてからそれを表示します.

 

 実際にはただ単に表示させるのでなく, 更に何らかの処理を行うことになるでしょう.

 

 これはJSONなどで記述した場合でも起こるため仕様なんでしょうね.

 辞書を扱うときはすでにそのキーが使われているか注意しなければいけません.

 キーに異なる文字列を使うか, 上のように値を配列に切り替える必要があります.