[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:_:)