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)
//["아마존", "데이터", "아이폰"]