map
map함수는 컬랙션 내부의 기존 데이터를 변형하여 새로운 컬렉션을 만든다(mapping)
다음은 Character형숫자를 Int형으로 변환하는 예시이다
let num = ["1", "2", "3", "4", "5"]
var numberArray: [Int] = []
for index in num {
if let changeToInt = Int(index) {
numberArray.append(changeToInt)
}
}
print(numberArray)
// [1, 2, 3, 4, 5]
let stringArray = ["1", "2", "3", "4", "5"]
numberArray = stringArray.map {
if let changeToInt = Int($0) {
return changeToInt
}
return 0
}
filter
filter함수는 기존 요소 중에서 조건에 만족하는 값에 대해 새로운 컨테이너를 만들어 반환한다.
다음은 filter함수를 이용한 짝수만 골라내는 예시이다
let numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]
var evenNumbers: [Int] = []
for number in numbers {
if number % 2 == 0 {
evenNumbers.append(number)
}
}
let number = [1, 2, 3, 4, 5, 6, 7, 8, 9]
var evenNumbers = number.filter{ $0 % 2 ==0 }
reduce
reduce함수는 기존의 컨테이너의 요소에 대해 정의한 클로저로 맵핑한 결과를 새로운 결과로 반환
다음은 1부터 10까지 더하는 과정을 reduce로 사용한 예시이다
let numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
var sum = 0
for i in numbers {
sum += i
}
sum = numbers.reduce(0, +)
sum = numbers.reduce(0) { $0 + $1 }