我有一个名为“Item”和“Tag”的模型。 Item具有多个标签。 我需要通过另一个标签数组来过滤项目数组。 要用于筛选的标签由字符串数组给出。
我搜索了一下,但找不到解决我的情况的答案。
struct Tag {
let id: Int
let name: String
}
struct Item {
let id: Int
let tags: [Tag]
}
func filter(items: [Item], contains tags: [String]) -> [Item] {
// Need to implement filter
}
map
是浪费的,你可以直接这样做:tags.allSatisfy { tag in item.tags.contains(tag) }
。 - Alexandertags.allSatisfy { tag in item.tags.contains(where: { $0.name == tag.name } }
- AlexanderhasTag
,这样它就可以像这样阅读:tags.allSatisfy(item.hasTag)
。 - Alexander