[swift] 고차 함수를 사용하여 배열 내의 원소를 그룹화하는 방법은 어떻게 되나요?

Swift에서 배열 내의 원소를 그룹화하는 방법 중 하나는 reduce 고차 함수를 사용하는 것입니다. reduce 함수는 배열의 각 원소를 순차적으로 처리하며, 초기값과 결합하는 클로저를 사용하여 결과를 구합니다.

다음은 reduce 함수를 사용하여 배열 내의 원소들을 그룹화하는 예제 코드입니다:

let array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

let groupedElements = array.reduce(into: [:]) { result, element in
    let key = element % 2 == 0 ? "Even" : "Odd"
    result[key, default: []].append(element)
}

print(groupedElements)

이 예제 코드는 주어진 배열을 홀수와 짝수로 그룹화합니다. reduce(into:_:) 메서드의 첫 번째 매개변수로 빈 딕셔너리를 생성하고, 클로저를 사용하여 각 원소를 해당하는 그룹에 추가합니다. 클로저에서는 원소를 2로 나눈 나머지를 검사하여 짝수와 홀수를 구분하고, 그에 맞는 그룹에 원소를 추가합니다.

위 코드를 실행하면 다음과 같은 출력을 얻을 수 있습니다:

["Even": [2, 4, 6, 8, 10], "Odd": [1, 3, 5, 7, 9]]

이렇게 reduce 함수를 사용하여 배열 내의 원소를 그룹화할 수 있습니다. reduce 함수는 다양한 상황에서 유용하게 사용될 수 있으므로, 적절한 경우에 활용해보시기 바랍니다.

참고: Apple Developer Documentation - reduce(into:_:)