Swift 3 сортировка больших объемов данных в массивах

У меня есть массив строк с большим количеством данных, только некоторые из которых я хочу. Я разделяю хорошие данные с помощью разделителя, например:

var result = contentArray[1].components(separatedBy: ",")

Это оставляет меня с мусорными данными в четных индексах массива результата и хорошими данными в нечетных индексах.

Теперь я хочу работать только с хорошими данными, чтобы потом все упростить. Я могу сделать это, создав другой массив, используя цикл for с шагом...

Но это похоже как минимум на один дополнительный шаг. Есть ли способ сортировки данных в первом массиве без создания 2 массивов? Это приведет к тому, что приложение создаст 3 массива с большими объемами данных, когда мне кажется, что я смогу сделать это за 1 или 2. Я планирую сделать это как минимум с 20 наборами данных, так что, кажется, много лишних массивы в памяти

1 ответ

Решение

Вы можете пойти так

let filterArray = result.indices.flatMap { $0 % 2 != 0 ? nil : result[$0] }
print(filterArray)

Редактировать: если вы хотите сохранить выходные данные фильтра в одном массиве, попробуйте вот так.

var result = contentArray[1].components(separatedBy: ",")
result = result.indices.flatMap { $0 % 2 != 0 ? nil : result[$0] }
print(result)
Другие вопросы по тегам