Skip to content

Instantly share code, notes, and snippets.

@satan87
Last active June 18, 2020 15:09
Show Gist options
  • Save satan87/0e18e1c67dda7f559f566ac615fde8eb to your computer and use it in GitHub Desktop.
Save satan87/0e18e1c67dda7f559f566ac615fde8eb to your computer and use it in GitHub Desktop.
// MARK: FILTER FUNCTION
func filterBooks(books: [Book], by filters: SearchingBook) -> [Book]{
var bookFiltered = books.filter({ filters.byBeforeYear == 0 || $0.year < filters.byBeforeYear})
//Search by favorite
switch filters.byFavorite {
case .favorite:
bookFiltered.removeAll(where: {!$0.favorite})
case .notFavorite:
bookFiltered.removeAll(where: {$0.favorite})
default:
break
}
if !filters.byAuthorFirstName.isEmpty {
bookFiltered.removeAll(where: {$0.author.firstName.range(of: filters.byAuthorFirstName,options: .caseInsensitive) == nil})
}
return bookFiltered
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment