どうも、ちょげ(@chogetarou)です。
辞書が持つnilの値を削除する方法を紹介します。
方法

辞書のnilの値を削除する方法は、2つあります。
compactMapValuesメソッド
1つは、compactMapValuesメソッドを使う方法です。
まず、辞書からcompactMapValuesメソッドを呼び出します。
そして、compactMapValuesメソッドのクロージャーで「$0」を返します。
let newDict = dict.compactMapValues { $0 }
compactMapValuesメソッドは、呼び出した辞書からnilの値を無くした新しい辞書を返します。
使用例
var numbers = [
"one" : 1,
"two" : 2,
"three" : nil,
"four" : 4,
"five" : nil
]
var newNums = numbers.compactMapValues { $0 }
print(newNums) //["one": 1, "four": 4, "two": 2]
filterメソッド
もう1つは、filterメソッドを使う方法です。
まず、辞書からfilterメソッドを呼び出します。
そして、filterメソッドのクロージャーで「$0.value != nil」を返します。
let newDict = dict.filter{ $0.value != nil }
上記のfilterメソッドは、辞書からnilの値を無くした新しい辞書を返します。
使用例
var numbers = [
"one" : 1,
"two" : 2,
"three" : nil,
"four" : 4,
"five" : nil
]
var newNums = numbers.filter{ $0.value != nil }
print(newNums) //["one": 1, "four": 4, "two": 2]
まとめ
辞書のnilの値を削除する方法は、次の2つです。。
- compactMapValuesメソッドを使う方法
- filterメソッドを使う方法
コメント