[swift] 맵 함수를 사용하여 배열을 필터링하기

이번 글에서는 Swift에서 맵 함수를 사용하여 배열을 필터링하는 방법에 대해 알아보겠습니다. 맵 함수는 배열의 각 요소에 함수를 적용하여 새로운 배열을 반환하는 기능을 제공합니다. 이를 활용하여 특정한 조건에 맞는 요소만을 가져올 수 있습니다.

필터링 조건 설정하기

먼저, 필터링 하고자 하는 조건을 설정해야 합니다. 예를 들어, 배열에서 짝수만을 가져오고 싶다면 다음과 같은 조건을 설정할 수 있습니다:

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

위의 예제에서 $0은 배열의 각 요소를 의미하며, 각 요소를 2로 나눈 나머지가 0인 경우($0 % 2 == 0)에만 해당 요소를 선택합니다. 따라서 [1, 2, 3, 4, 5, 6] 배열에서는 2, 4, 6만을 선택하여 evenNumbers 배열에 담게 됩니다.

맵 함수를 사용하여 배열 필터링하기

이제 맵 함수를 사용하여 배열을 필터링해보겠습니다. 맵 함수를 사용하면 필터링 결과로 새로운 배열을 반환할 수 있습니다.

let filteredNumbers = numbers.map { $0 * 10 }.filter { $0 % 2 == 0 }
print(filteredNumbers) // [20, 40, 60]

위의 예제에서 numbers 배열의 각 요소에 10을 곱한 값을 먼저 계산한 후, 이렇게 변환된 배열에서 짝수만을 선택합니다. 따라서 [1, 2, 3, 4, 5, 6] 배열에 10을 곱한 배열 [10, 20, 30, 40, 50, 60]에서 짝수인 20, 40, 60만을 선택하여 filteredNumbers 배열에 담게 됩니다.

결론

Swift에서는 맵 함수를 사용하여 배열을 필터링하는 것이 간단하고 효율적입니다. 맵 함수를 활용하면 한 줄의 코드로 배열의 요소를 조건에 맞게 선택할 수 있습니다. 이를 통해 코드를 더 간결하고 가독성있게 작성할 수 있습니다.

참고 자료