ios - 在对象数组的字典中应用过滤器

标签 ios arrays swift dictionary filter

我有一类名为“EpisodeInfoData”的属性

class EpisodeInfoData {
    var episodeId = ""
    var episodeName = ""
}

我将这些类的对象存储到一个字典中,该字典的第一个元素是“String”,另一个元素是“EpisodeInfoData”类对象的数组

var episodes    = Dictionary<String, [EpisodeInfoData]>()

let infoObj1 = EpisodeInfoData()
infoObj1.episodeId           = "1"
infoObj1.episodeName         = "one"

let infoObj2 = EpisodeInfoData()
infoObj2.episodeId           = "2"
infoObj2.episodeName         = "two"

let infoObj3 = EpisodeInfoData()
infoObj3.episodeId           = "3"
infoObj3.episodeName         = "three"

let infoObj4 = EpisodeInfoData()
infoObj4.episodeId           = "4"
infoObj4.episodeName         = "four"

let infoObj5 = EpisodeInfoData()
infoObj5.episodeId           = "5"
infoObj5.episodeName         = "five"

let infoObj6 = EpisodeInfoData()
infoObj6.episodeId           = "6"
infoObj6.episodeName         = "six"

let infoObj7 = EpisodeInfoData()
infoObj7.episodeId           = "7"
infoObj7.episodeName         = "seven"

let infoObj8 = EpisodeInfoData()
infoObj8.episodeId           = "8"
infoObj8.episodeName         = "eight"

episodes["season1"] = [infoObj1,infoObj2,infoObj3,infoObj4]
episodes["season2"] = [infoObj5,infoObj6,infoObj7,infoObj8]

我想在剧集名称为“八”的“剧集”词典中获取季节名称。我已尝试对其应用过滤器,但它不起作用。

任何人都可以建议我在不使用过滤器的情况下使用过滤器找到结果。

提前谢谢你

最佳答案

不得不添加另一个答案,感谢那些在没有真正帮助的情况下投票的人。

试试这个

if let episode = (episodes.filter { $0.1.contains { $0.episodeName == "eight" } }).first {
    print(episode.0) // season2
}

关于ios - 在对象数组的字典中应用过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39826104/

相关文章:

ios - UIGraphicsImageRenderer 工作后释放内存

ios - 应用因使用Google Maps SDK被Apple拒绝

ios - iPhone 模拟器上的 CLLocationManager 失败,kCLErrorDomain Code=0

javascript - 如何在页面上显示对象数组

c++ - 方法中使用的静态模板成员数组sizeof

swift - Datasource为Results对象时如何用Realm做接口(interface)驱动写

ios - Apple 建议使用 : custom struct or extension? 是什么

iphone - 使用蒙皮控件创建 iPhone 屏幕

ios - 制作自定义形状 imageview ios swift 4.2

java - Java 中的 gem 棋游戏 - 在 while 循环中使用 int 数组