map, filter, reduce
Youngminah opened this issue · 1 comments
Youngminah commented
Map
- A object 리스트에서 B object 리스트로 변환시 사용
- B로 변환 실패하면 nil을 넘김
- 변환 결과에 nil 포함
- CompactMap은 nil을 넘기지 않음
import UIKit
let stringValues = ["hi", "1", "3", "hello"]
/// Map vs CompactMap
let intValuesWithMap = stringValues.map { string in
return Int(string)
}
intValuesWithMap // [nil, 1, 3, nil]
let intValueWithCompactMap = stringValues.compactMap { string in
return Int(string)
}
intValueWithCompactMap // [1, 3]
- 간단한 사용법 예제
for string in strArray{
string += "box"
}
//한줄로 쓰기 가능.
var resultArray = strArray.map({$0+"box"})
Filter
- 말 그대로 특정 조건을 통과한 element들을 모아서 Array로 반환하는 함수
var filteredArray = moneyArray.filter({$0<1_1000})
Reduce
//초기 값이 0인것에다가 계속 moneyArray의 값을 누적 더해간다.
let moneyArray: [Int] = [1,2,3]
var sum = moneyArray.reduce(0, combine: +) //결과값 6
또는
var sum = moneyArray.reduce(0) { $0 + $1 }
var aString = resultArray.reduce("", combine: {$0 + $1 + "!!"})
//또는
var aString = resultArray.reduce("") {$0 + $1 + "!!"}
Youngminah commented
- 수업외적 내용