【发布时间】:2020-05-21 18:27:48
【问题描述】:
我有一个自定义对象数组,将 ID 值作为属性。现在我有另一个选定对象数组(由 ID 选择)。如何通过筛选选定的 ID(第二个数组)来获取第一个数组的索引?
我想避免循环并考虑使用compactMap 或类似的解决方案。
struct MyObject {
var ID: Int
var name: String
}
let myObjects = [
MyObject(ID: 3, name: "AAAA"),
MyObject(ID: 5, name: "BBBB"),
MyObject(ID: 12, name: "CCCC"),
MyObject(ID: 15, name: "DDDD"),
MyObject(ID: 20, name: "EEEE"),
MyObject(ID: 21, name: "GGGG"),
MyObject(ID: 22, name: "HHHH"),
MyObject(ID: 23, name: "IIII"),
]
let selectedIds = [5, 20, 23]
// How to get an array of indices for selectedIds
// Expected result [1, 4, 7]
【问题讨论】: