[swift] 고차 함수를 사용하여 배열 내의 요소들을 특정 조건에 맞게 그룹화하는 방법은 어떻게 되나요?
Swift에서는 고차 함수를 사용하여 배열 내의 요소들을 특정 조건에 따라 그룹화할 수 있습니다. 이를 위해 reduce
와 filter
고차 함수를 함께 사용할 수 있습니다.
아래는 배열 내의 요소들을 짝수와 홀수로 그룹화하는 예제 코드입니다.
let numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
let groupedNumbers = numbers.reduce(into: [:]) { result, number in
let groupKey = number % 2 == 0 ? "Even" : "Odd"
result[groupKey, default: []].append(number)
}
print(groupedNumbers)
위 코드에서는 reduce
함수를 사용하여 빈 딕셔너리를 초기값으로 설정하고, 배열의 각 요소를 반복하며 그룹화합니다. 요소의 값을 기반으로 짝수와 홀수를 판단하여 groupKey
를 설정한 후, 딕셔너리의 해당 키에 값을 추가합니다.
결과는 다음과 같습니다.
["Odd": [1, 3, 5, 7, 9], "Even": [2, 4, 6, 8, 10]]
이와 같이 고차 함수를 사용하면 배열 내의 요소들을 제공된 조건에 맞게 그룹화할 수 있습니다. 추가적으로 map
, flatMap
등의 고차 함수를 사용하여 배열 요소를 변환하거나 평면화하는 것도 가능합니다.
참고 자료: