我有struct
定义为:
struct Section {
var name: String!
var items: [String]!
init(name: String, items: [String]) {
self.name = name
self.items = items
}
}
现在我如何根据记录中的项目数过滤此结构。假设我想删除每条记录,如果项目为零
e.g。
sections = [
Section(name: "Mac", items: ["MacBook", "MacBook Air", "MacBook Pro", "iMac", "Mac Pro", "Mac mini", "Accessories", "OS X El Capitan"]),
Section(name: "iPad", items: []), // no Items in this record (remove this)
Section(name: "iPhone", items: ["iPhone 6s", "iPhone 6", "iPhone SE", "Accessories"]),
]
以上数据有3条记录,其中记录#2(“iPad”)没有任何项目,那么如何从我的结构中删除它呢?
答案 0 :(得分:2)
首先,不要将items
声明为隐式展开的可选项,因为您使用的是需要非可选项的初始化程序。
好处是您只需检查空虚而不是nil
let filteredSections = sections.filter { !$0.items.isEmpty }