我有一个 struct
定义为:
struct Section {
var name: String!
var items: [String]!
init(name: String, items: [String]) {
self.name = name
self.items = items
}
}
现在如何根据记录中的项目数过滤此结构。如果 items 为 nil 我想删除每条记录
例如
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”)没有任何项目,那么如何从我的结构中删除它?
最佳答案
首先,不要将 items
声明为隐式解包可选,因为您正在使用需要非可选的初始化程序。
好处是您只需要检查是否为空,而不是另外检查 nil
let filteredSections = sections.filter { !$0.items.isEmpty }
关于ios - 根据条件从结构中删除记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40700919/