SWIFT

[SWIFT] 고차함수 Filter(추출)

clamp 2022. 10. 20. 12:55

filter는 데이터를 추출하고자 할 때 사용한다.

기존 컨테이너에서 내부의 값을 걸러 새로운 데이터를 만든다.

filter또한 map과 마찬가지로 for-in문과 크게 다르지 않다.

 

filter의 형태

array.filter(isIncluded: T throws -> T)

T타입의 isIncluded를 받아 새로운 T형태의 컨테이너를 생성한다.

 

for - in

let stringArray = ["크롬", "직업", "아마존", "데이터", "구글", "아이폰"]
var threeCountArray: [String] = []
for st in stringArray{
	if(st.count) == 3{
    	threeCountArray.append(st)
    }
}
print(threeCountArray)

//["아마존", "데이터", "아이폰]

 

filter

let stringArray = ["크롬", "직업", "아마존", "데이터", "구글", "아이폰"]
let threeCountArray = stringArray.filter{ $0.count == 3 }
print(threeCountArray)
//["아마존", "데이터", "아이폰"]

매개변수, 반환타입, 반환 키워드(return)을 생략한 후행 클로저이다.

 

let stringArray = ["크롬", "직업", "아마존", "데이터", "구글", "아이폰"]
let threeCountArray = stringArray.filter({(st: String) -> Bool in
	return st.count == 3
 })
print(threeCountArray)
//["아마존", "데이터", "아이폰"]