どうも、ちょげ(@chogetarou)です。
辞書のキーを条件で検索する方法を紹介します。
方法

辞書のキーを条件で検索する方法は、2つあります。
firstメソッド
1つは、firstメソッドを使う方法です。
まず、辞書のkeysプロパティにアクセスします。
次に、keysプロパティからfirstメソッドを呼び出します。
firstメソッドの引数「where」に、引数を1つ持つクロージャーを指定します。
そして、firstメソッドの引数「where」のクロージャーで条件式を返します。
let findValue = dict.keys.first(where: { (key) in 条件式 } )
fitstメソッドは、条件式で最初に「true」を返したキーを返します。
使用例
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を返した全てのキーを配列で返します。
使用例
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メソッドを使う方法
コメント