在字典SWIFT中获取具有特定日期值的所有键

时间:2018-11-15 09:11:34

标签: ios swift

我有一系列的字典:

var eventDetailsArray = [[String: String]]()
var events: [String: String] =  ["name":"block A”,  "date":"Friday, 23 Nov 2018"]
var events1: [String: String] = ["name":"block AB”, "date":"Friday, 23 Nov 2018"]
var events2: [String: String] = ["name":"block B",  "date":"Tuesday, 13 Nov 2018"]
var events3: [String: String] = ["name":"block C",  "date":"Wednesday, 28 Nov 2018"]

eventDetailsArray.append(events)
eventDetailsArray.append(events1)
eventDetailsArray.append(events2)
eventDetailsArray.append(events3)

var eventNamesArray = [String]() 

我想要一个仅具有选定日期的事件名称的输出数组。 例如;如果选择了“ 2018年11月23日星期五”,则应该在SWIFT的输出数组中获得“ block A”和“ AB AB”

2 个答案:

答案 0 :(得分:3)

您可以这样做:

let str = "Friday, 23 Nov 2018"
eventNamesArray = eventDetailsArray.compactMap { $0["date"] == str ? $0["name"] : nil }

结果是:

print(eventNamesArray)  //["block A", "block AB"]

答案 1 :(得分:0)

只需使用filter方法:

var eventNamesArray = eventDetailsArray.filter { $0["date"] == "Friday, 23 Nov 2018" }

也许您还应该考虑使用Date而不是字符串来表示日期。特别是,如果您有兴趣支持不同的语言/地区。