struct Area {
var name: String
var isSelected: Bool
}
У меня есть два списка:
- Список первый: у него есть полный список областей.
- Список два: у него есть подмножество областей из списка один пользователь выбрал (но выбранное состояние не установлено)
Я хочу создать новый список областей, в котором есть элементы из обоих списков, но если элемент из первого списка находится во втором списке Я хочу обновить свойство isSelected до true.
Я написал текущий метод, но он ошибочен и неэффективен:
private func didGetCurrentUserSession(_ usersAreas: [Area]?, allAreas: [Area]){
guard let usersAreas = usersAreas else {return}
var newAreasList = [Area]()
for area in allAreas {
for userArea in usersAreas {
if userArea.name == area.name {
newAreasList.append(Area(name: area.name, isSelected: true))
break
}
}
newAreasList.append(Area(name: area.name, isSelected: false))
}
_loadingAreas.onNext(false)
_areas.onNext(newAreasList)
}
Любая помощь с этим будет высоко оценена. Я бы предпочел выполнить sh, используя очень Swifty подход.