[swift] Swift 딕셔너리에서 특정 키와 값을 이용하여 새로운 딕셔너리를 생성하는 방법은?
새로운 딕셔너리를 만들고자 하는 원본 딕셔너리가 있다고 가정해봅시다. 이때 filter
와 reduce
메서드를 사용하여 원하는 결과를 얻을 수 있습니다.
예를 들어, 다음과 같은 딕셔너리가 있다고 가정해봅시다.
let originalDictionary = ["a": 1, "b": 2, "c": 3, "d": 4]
여기서 b
키와 c
값을 사용하여 새로운 딕셔너리를 만들고 싶다면 다음과 같이 할 수 있습니다.
let newDictionary = originalDictionary.filter { $0.key == "b" || $0.key == "c" }.reduce(into: [:]) { result, pair in result[pair.key] = pair.value }
이 코드에서 filter
메서드는 특정 조건을 만족하는 항목들로 이루어진 딕셔너리를 만들고, reduce
메서드는 새 딕셔너리를 초기화한 후 각 항목을 추가합니다.
참고문헌:
- https://developer.apple.com/documentation/swift/dictionary/3127163-filter
- https://developer.apple.com/documentation/swift/array/3126887-reduce
- https://docs.swift.org/swift-book/LanguageGuide/Closures.html