Хитрые методы массивов Array: filter, map, reduce
Рекомендую разобраться с этими методами, т.к. с их помощью можно сделать практически все что угодно с массивами данных
Метод filter создает новый массив с отфильтрованными элементами, то есть из массива удалены так называемые «нежелательные» элементы
Функция, передаваемая как аргумент, возвращает false, если элемент «нежелательный»
//
// proSwift.ru
//
filter (includeElement:(T) -> Bool) -> [T]
Аргументом filter является функция, которая по каким либо критериям внутри себя решает будет ли элемент «нежелательный» или «желательный».
Метод map cоздает новый массив путем трансформации каждого элемента массива во что-то другое
Элемент, в который идет трансформация, может иметь другой тип, чем элемент исходного массива
//
// proSwift.ru
//
map (transform:(T) -> U) -> [U]
let stringified: [String] = [1,2,3].map {"\($0)"}
В данном случае stringified — массив из строк [«1″,»2″,»3»]. Перебирая каждый элемент массива функция map создает массив строк с помощью замыкания {«\($0)»}
Метод reduce cворачивает целый массив до единственного значения
//
// proSwift.ru
//
reduce (initial:U, combine: (U,T) -> U) -> U
let sum: Int = [1,2,3].reduce(0){$0 +$1}//добавляет числа в массиве
Он берет начальное значение 0 и прибавляет первый элемент массива. То что именно прибавляет задано замыканием {$0 +$1}. Но мы можем использовать любую функцию (U,T) -> U. Затем результат сложения устанавливается в переменную initial:U и те же действия происходят с остатком массива. Таким образом sum — это сумма элементов массива.
Добавить комментарий