[swift] 배열의 원소 중 일부만 선택하여 새로운 배열을 만드는 방법은 무엇인가요?

첫 번째 방법은 for문을 사용하여 조건에 맞는 원소만 새로운 배열에 추가하는 방법입니다. 아래는 예시 코드입니다.

let numbers = [1, 2, 3, 4, 5]
var selectedNumbers = [Int]()

for number in numbers {
    if number % 2 == 0 {
        selectedNumbers.append(number)
    }
}

print(selectedNumbers)  // [2, 4]

두 번째 방법은 filter 메서드를 사용하여 조건에 맞는 원소만 필터링하여 새로운 배열을 만드는 방법입니다. 아래는 위의 예시를 filter 메서드로 구현한 코드입니다.

let numbers = [1, 2, 3, 4, 5]
let selectedNumbers = numbers.filter({ $0 % 2 == 0 })

print(selectedNumbers)  // [2, 4]

세 번째 방법은 compactMap 메서드를 사용하여 nil이 아닌 원소만 선택하여 새로운 배열을 만드는 방법입니다. 아래는 예시 코드입니다.

let numbers = [1, nil, 3, 4, nil, 5]
let validNumbers = numbers.compactMap({ $0 })

print(validNumbers)  // [1, 3, 4, 5]

이 외에도 맵(map), flatMap, reduce 등의 메서드를 활용하여 원하는 배열을 생성할 수 있습니다. 추가적으로 필요한 기능이 있다면 해당 메서드의 문서를 참고하시기 바랍니다.

참고 문서: