Я искал эту проблему, и я не нашел решения, которое работает для меня, используя последнюю версию Xcode и Swift. Я использую три массива:Как фильтровать массив структур со значением другого массива в swift?
1. baseArray[Meal]: array filled with every meal. Not locally saved.
2. favoritesArray[Favorite]: with names of all favorite meals, locally saved by the user with NSKeyedArchiver.
3. filteredArray[Meal]: baseArray but filtered for searchterm. In code:
(filteredArray = baseArray.filter { $0.type == searchtext }}
я использую последний массив в tableView
. Если они хотят видеть все блюда, то filteredArray
- это то же самое, что и baseArray
.
Мой вопрос: как я могу получить filteredArray
, что он имеет все любимые блюда (так где Meal.title == Favorite.name
). Как объединить три массива?
Я пробовал много вариантов на прошлой неделе, но никто не работал. Надеюсь, вы можете мне помочь!
'filterArray = baseArray.filter {$ 0.type == текст поиска && избранноеArray.contains ($ 0.type)}'? (вы можете конвертировать избранноеArray в 'Set') – hnh