根据条件从结构中删除记录

时间:2016-11-20 05:07:19

标签: ios struct swift3

我有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”)没有任何项目,那么如何从我的结构中删除它呢?

1 个答案:

答案 0 :(得分:2)

首先,不要将items声明为隐式展开的可选项,因为您使用的是需要非可选项的初始化程序。

好处是您只需检查空虚而不是nil

let filteredSections = sections.filter { !$0.items.isEmpty }