본문 바로가기

Swift Algorithms

7. Filter, Map, Reduce Higher Order Functions

Filter

let numbers = [1, 2, 3, 4, 3, 3]

// Filter 사용
let filtered = numbers.filter{$0 == 3} 
filtered // [3, 3, 3]

// for in 
var filteredArray = [Int]()
for number in numbers {
    if number == 3 {
        filteredArray.append(number)
    }

}
filteredArray // [3, 3, 3]

 

Filter는 배열중 원하는 값의 배열을 추출해 배열로 만들어 주는 고차함수

Map

// Map 사용
let transformed = [1, 2, 3, 4].map({$0 * 2})
transformed // [2, 4, 6, 8]


// for in 
var transformedArray = [Int]()
for number in [1, 2, 3, 4] {
    transformedArray.append(number * 2)
}
transformedArray // [2, 4, 6, 8]

 

Map은 원하는 형태로 배열을 변형시켜 배열로 만들어주는 고차함수 

Reduce 

// Reduce 사용
let sum = [1, 2, 3, 4].reduce(0, {sum, number in sum + number})
sum // 10

// for in 
var sumElements = 0
for number in [1, 2, 3, 4] {
    sumElements += number
}
sumElements // 10

 

Reduce는 배열의 모든 수를 합쳐 값을 리턴해주는 고차함수

'Swift Algorithms' 카테고리의 다른 글

Linked List  (0) 2020.07.06
Time Complexity  (0) 2020.07.06
6. Fibonacci Sequence  (0) 2020.07.03
5. Reverse every other word  (0) 2020.07.03
4. Most Common Name in Array  (0) 2020.07.02