Swift 코딩테스트 준비
고차원함수 map, filter, reduce 정리
천 원
2022. 5. 14. 20:55
Map : for문이랑 비슷하지만 훨씬 간결하게 사용이 가능하다
//for in
let numArray = [1,2,3,4,5]
var multiArray = [Int]()
for num in numArray {
multiArray.append(num * 2)
}
print(multiArray) // [2,4,6,8,10]
//Map
let numArray = [1,3,5,7,9]
var multiArray = numArray.Map{$0 * 2}
print(multiArray) // [2,4,6,8,10]
filter: for 문에 if절이 있을때 간결하게 사용하기 위해서 사용 조건식이 true인 요소들로만 구성된다.
//for in
let stringArray = ["가수", "대통령", "개발자", "선생님", "의사", "검사", "건물주"]
var threeCountArray = [String]()
for st in stringArray {
if st.count == 3 {
threeCountArray.append(st)
}
}
print(threeCountArray)
// ["대통령", "개발자", "선생님", "건물주"]
//filter
let stringArray = ["가수", "대통령", "개발자", "선생님", "의사", "검사", "건물주"]
var threeCountArray = stringArray.filter{$0.count = 3}
print(threeCountArray)
// ["대통령", "개발자", "선생님", "건물주"]
reduce: 데이터를 합쳐주기 위해서 사용
/for in
let numberArray = [1,2,3,4,5,6,7,8,9,10]
var sum = 0
for number in numberArray {
sum += number
}
print(sum)
// 55
//reduce
let numberArray = [1,2,3,4,5,6,7,8,9,10]
var sum = numberArray.reduce(0){$0 + $1}
print(sum) // 55