[Swift] 알면 좋은 Array에서 제공하는 함수 (map, filter, reduce)
Map
map은 각 element를 순회하면서 element를 수정할 때 사용하기 좋은 함수이다. 예를 들어 우리는 각 String에 "box"라는 String을 덧붙이기 위하여 for-in을 떠올리기 쉽다.
ex)
for string in strArray {
string += "box"
}
대신에 map 함수를 사용하면 한줄로 간단하게 작성할 수 있다.
ex)
var resultArray = strArray.map({$0+"box"})
참고로 map의 param 함수 타입은 '(T) -> U'이다. map 함수는 Array의 각 element를 순회하면서 개발자가 정의한 동작을 수행하게 된다.
Filter
filter는 말 그대로 특정 조건을 통과한 element들을 모아서 Array로 반환하는 함수 이다. filter의 param 함수 타입은 '(T) -> Bool'이다. 작성하면 아래와 같다.
ex)
var filteredArray = moneyArray.filter({$0<1_000})
Reduce
reduce는 element들을 하나의 value로 통합하는 함수이다. reduce의 함수 원형은 'func reduce<U>(initial: U, combine: (U, T) -> U) -> U'이다. 이를 이용하여 작성하면 아래와 같다.
ex)
var sum = moneyArray.reduce(0, combine: +)
moneyArray의 element는 Integer로 각 element의 합을 구하는 것이다. 혹은 아래와 같이 String을 reduce할 경우, element들을 하나의 String으로 통합할 수도 있다.
ex)
var aString = resultArray.reduce("", combine: {$0+$1 + "!! "})