[Swift]辞書(Dictionary)のキーを条件で検索するには?

Swift

どうも、ちょげ(@chogetarou)です。

辞書のキーを条件で検索する方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

辞書のキーを条件で検索する方法は、2つあります。

firstメソッド

1つは、firstメソッドを使う方法です。

まず、辞書のkeysプロパティにアクセスします。

次に、keysプロパティからfirstメソッドを呼び出します。

firstメソッドの引数「where」に、引数を1つ持つクロージャーを指定します。

そして、firstメソッドの引数「where」のクロージャーで条件式を返します。

let findValue = dict.keys.first(where: { (key) in 条件式 } )

fitstメソッドは、条件式で最初に「true」を返したキーを返します。

firtsメソッドの引数「where」のクロージャーは、引数で辞書のキーを取得できます。

firstメソッドの引数「where」のクロージャーでは、キーを「$0」に省略して記述できます。

使用例

let numbers = [
    "one" : 1,
    "two" : 2,
    "three" : 3,
    "four" : 4,
    "five" : 5,
]

let findValue = numbers.keys.first(where: { (key) in key.contains("v") } )

print(findValue ?? "Not Found") //five

filterメソッド

もう1つは、filterメソッドを使う方法です。

まず、辞書のkeysプロパティにアクセスします。

次に、keysプロパティからfilterメソッドを呼び出します。

そして、filterメソッドのクロージャーで検索の条件式を返します。

let findValues = dict.keys.filter { (key) in 条件式 }

filterメソッドは、条件式でtrueを返した全てのキーを配列で返します。

filterメソッドのクロージャーの引数では、辞書のキーを受け取ります。

使用例

let numbers = [
    "one" : 1,
    "two" : 2,
    "three" : 3,
    "four" : 4,
    "five" : 5,
]

let findValue = numbers.keys.filter { (key) in key.count > 3 }

print(findValue ?? "Not Found") //["four", "five", "three"]

まとめ

辞書のキーを条件で検索する方法は、次の2つです。。

  • firstメソッドを使う方法
  • filterメソッドを使う方法

コメント

タイトルとURLをコピーしました