【发布时间】:2021-02-10 07:01:25
【问题描述】:
我有以下字典代码
var dic : [String: AnyObject] = ["FirstName": "Anvar", "LastName": "Azizov", "Website": NSNull(),"About": NSNull()]
我已经使用下面的代码删除了具有空值的键
var keys = dic.keys.array.filter({dic[$0] is NSNull})
for key in keys {
dic.removeValueForKey(key)
}
它适用于静态字典,但我想动态地做,我想用函数来做,但是每当我将字典作为参数传递时,它都作为 let 表示常量,所以不能删除空键 我为此编写了以下代码
func nullKeyRemoval(dic : [String: AnyObject]) -> [String: AnyObject]{
var keysToRemove = dic.keys.array.filter({dic[$0] is NSNull})
for key in keysToRemove {
dic.removeValueForKey(key)
}
return dic
}
请告诉我解决方法
【问题讨论】:
-
func nullKeyRemoval(var dic : [String: AnyObject]) -> [String: AnyObject]{
-
为什么你不在过滤函数中改变你的条件,这样你就可以得到包含你想要的数据的数组并且你不需要再次枚举它:({!(dic[$0]是 NSNull)})