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

辞書の要素を条件で検索する方法は、2つあります。
firstメソッド
1つは、firstメソッドを使う方法です。
まず、辞書からfirstメソッドを呼び出します。
firstメソッドの引数「where」に、引数を2つ持つクロージャーを指定します。
そして、firstメソッドの引数「where」のクロージャーで条件式を返します。
let findValue = dict.first(where: { (key, value) in 条件式})
fitstメソッドは、条件式で最初に「true」を返した要素をタプルで返します。
使用例
let numbers = [
"one" : 1,
"two" : 2,
"three" : 3,
"four" : 4,
"five" : 5,
]
let findValue = numbers.first(where: { (key, value) in
key.count > 3 && value % 2 == 0
})
print(findValue ?? "Not Found") //(key: "four", value: 4)
filterメソッド
もう1つは、filterメソッドを使う方法です。
まず、辞書からfilterメソッドを呼び出します。
そして、filterメソッドのクロージャーで検索の条件式を返します。
let findValues = dict.filter { (key, value) in 条件式 }
filterメソッドは、条件式でtrueを返した全ての要素を配列で返します。
使用例
let numbers = [
"one" : 1,
"two" : 2,
"three" : 3,
"four" : 4,
"five" : 5,
]
let findValues = numbers.filter { (key, value) in key.count > 3 }
print(findValues) //["three": 3, "five": 5, "four": 4]
まとめ
辞書の要素を条件で検索する方法は、次の2つです。。
- firstメソッドを使う方法
- filterメソッドを使う方法
コメント