使用值数组,根据对象的某个属性筛选对象数组的最有效方法是什么?我可以遍历这些项目,但我忍不住想,使用Array.filter和Array.contains是一种非常有效的方法--我只是对Swift不够精通,无法将这些片段放在一起。
例如,如果我有一个包含Book对象的数组,每个对象都有一个String author属性,我如何过滤它以只显示John Smith、亚瑟Price或大卫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})})
字符串
3条答案
按热度按时间toe950271#
这就是我在操场上工作的原因,为什么这是不好的?
字符串
ffscu2ro2#
你也可以用一些
字符串
这将是元组数组,第一个元素是作者的名字,第二个元素是他的书数组,以防作者写了多本书。
wf82jlnq3#
我建议你按作者做一个图书索引:
字符串
现在,您可以快速访问按作者筛选的书籍:
型
对于多个作者:
型