使用值数组过滤基于其中一个属性的对象数组的最有效方法是什么?我可以遍历这些项目,但我不禁想到使用Array.filter和Array.contains是一种非常有效的方法 - 我只是不够精通Swift才能将各个部分放在一起.
例如,如果我有一个包含Book对象的数组,每个对象都有一个String author属性,我将如何过滤它以仅显示John Smith,Arthur Price或David Jones的书籍?
有点像:
Class Book {
var author : String = String()
}
var books : Array = [Book]()
//books added elsewhere
let authors = ["John Smith", "Arthur Price", "David Jones"]
let filteredBooks = books.filter({authors.contains({($0 as Book).author})})
Run Code Online (Sandbox Code Playgroud)