[swift] 고차 함수를 사용하여 배열 내의 요소들을 특정 조건에 맞게 그룹화하는 방법은 어떻게 되나요?

Swift에서는 고차 함수를 사용하여 배열 내의 요소들을 특정 조건에 따라 그룹화할 수 있습니다. 이를 위해 reducefilter 고차 함수를 함께 사용할 수 있습니다.

아래는 배열 내의 요소들을 짝수와 홀수로 그룹화하는 예제 코드입니다.

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 등의 고차 함수를 사용하여 배열 요소를 변환하거나 평면화하는 것도 가능합니다.

참고 자료: