从集合中提取数组

时间:2016-12-21 12:08:16

标签: arrays swift

我使用以下代码从集合中获取元素:

modelCollec[indexPath].model

我希望将所有模型都放在一个数组中。有功能还是我应该写一个循环?

只有一行,因此indexPath始终为[0, index]

2 个答案:

答案 0 :(得分:3)

使用flatMap

let modelArray = modelCollec.flatMap { $0.model } 

modelArray类型为[model]

例如:

struct Person {
    var name: String
}

现在,如果你有person的数组,并且你需要name的数组,你就可以像这样使用flatMap来获取它。

let persons = [Person]()
let nameArray = persons.flatMap { $0.name } //nameArray type is [String]

注意:您也可以使用map代替flatMap,但如果您的模型属性是可选的,它会为您提供可选对象,因此它可能包含nil其中flatMap忽略nil对象。

答案 1 :(得分:1)

如果你总是想要访问集合的第一个元素,那么硬编码0索引而不是使用循环是个更好的主意,但是检查nil总是更好。