我有以下阵列:滤波器阵列 - SWIFT
[[user1ID: NSDate], [user2ID: NSDate], [user3ID: NSDate]]
是否可以过滤掉,所以我只能取得user2ID
字典?
我有以下阵列:滤波器阵列 - SWIFT
[[user1ID: NSDate], [user2ID: NSDate], [user3ID: NSDate]]
是否可以过滤掉,所以我只能取得user2ID
字典?
let test = [["user1ID": NSDate()], ["user2ID": NSDate()], ["user3ID": NSDate()]]
let newArray = test.filter { $0.keys.contains("user2ID") }.flatMap { $0 }
print(newArray) // ["user2ID": 2016-01-28 10:52:29 +0000]
为了测试目的,我已经编辑了一下你的字典。
回答您的评论:
如果你只是想知道,如果数组包含“user2ID”一本字典的关键,你可以做到以下几点:
test.contains { $0.keys.contains("user2ID") } ? print("yep!") : print("nope!") // "Yep!"
一点题外话:可以在阵列还包含多键字典?像'[[user1ID:NSDate],[user2ID:NSDate,user3ID:NSDate],[user3ID:NSDate]]'?如果没有,你可能要考虑使用一个简单的字典,如下所示:'[user1ID:NSDate,user2ID:NSDate,user3ID:NSDate]' – vrwim