Я не уверен, почему иногда вы используете "indexPath.row", а иногда "indexPath.item".
Независимо от того, ваша функция должна выглядеть примерно так
@IBAction func selectAllA(_ sender: Any) {
arraySelectedFilterIndex.removeAll()
arraySelectedFilterData.removeAll()
for (index, element) in self.filterTitles.enumerated() {
arraySelectedFilterIndex.append(IndexPath(item: index, section: 0))
arraySelectedFilterData.append(element)
}
collectionView.reloadData()
print(arraySelectedFilterData)
}
Сначала вы очищаете предыдущий выбор, чтобы избежать дублирования, однако вы можете использовать структуру карты / словаря, чтобы избежать дублирования вместо списка.
Затем для каждого элемента вы добавляете индекс и данные в выбранный список. Наконец, перезагрузите данные, в конце я сохранил для вас распечатку, чтобы вы могли проверить ее.