천원의 개발

고차원함수 map, filter, reduce 정리 본문

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

'Swift 코딩테스트 준비' 카테고리의 다른 글

stride(form: to: by:)  (0) 2022.05.18
uppercased, lowercased  (0) 2022.05.18
Swift forEach 정리  (0) 2022.05.15
Swift enumerated정리  (0) 2022.05.15
Swift 컬렉션 타입(Array, Dictionary, Set)  (0) 2022.05.14