title: Filter an array of objects by property, using an array of values in Swift
body: <p>What is the most efficient way of filtering an array of objects based on one of their properties, using an array of values? I could iterate through the items, but I can't help thinking there's a really efficient way using Array.filter and Array.contains - I'm just not proficient enough with Swift to be able to put the pieces together.</p>
  
  <p>For example, if I have an array containing Book objects, each of which has a String author property, how would I filter it to show only books by John Smith, Arthur Price or David Jones?</p>
  
  <p>Something along the lines of:</p>
  
  <pre><code>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})})
  </code></pre>