swift - Swift 4 - 用数组过滤数组
问题描述
我有一个条目列表,有一个 id,我想将它们过滤到那些 entry.id 与 selectedIDs 中的一个 id 匹配的条目。有没有办法用过滤器做到这一点,还是我必须使用 for 循环?
struct Entry {
let id: String
}
var allEntries = [Entry]()
var selectedIDs = [String]
例如
allEntries = [Entry(id: "1"), Entry(id:"2"), Entry(id:"3"), Entry(id:"4")]
selectedIDs = ["1", "3"]
// return selectedEntries
var selectedEntries = [Entry(id: "1"), Entry(id: "3")]
解决方案
allEntries
根据是否selectedIDs
包含过滤id
。
var allEntries = [Entry(id: "1"), Entry(id:"2"), Entry(id:"3"), Entry(id:"4")]
var selectedIDs = ["1", "3"]
var selectedEntries = allEntries.filter({ selectedIDs.contains($0.id) })
推荐阅读
- python - OpenCV 更改 VideoCapture 分辨率会导致颜色问题和故障
- reactjs - 在反应应用程序中模拟/测试socket.io-client
- python-3.x - 在 pandas 中以“%H:%M:%S”格式计算时间差
- python - (Python) 计算最小移动计数
- android - 错误:EISDIR:对目录的非法操作,在 Object.readSync 处读取
- google-sheets - 谷歌表格自动填充公式
- flutter - Flutter:避免将`forEach`与函数文字一起使用
- python-3.x - 如何根据 Python 中的条件将一个数据框中的列值添加到第二个数据框中的另一列?
- android-studio - 消费者被配置为查找与 Java 11 兼容的库的运行时,打包为 jar,其依赖项在外部声明,但是:
- scala - 如何在 Scala 中使用将函数作为参数的方法?