* zip : 두 개의 기본 시퀀스로 구성된 쌍의 시퀀스를 만든다.
let str = ["a","b","c"]
let num = [1,2,3]
let sequenceZip = zip(str,num)
for i in sequenceZip {
print(i)
}
// ("a", 1)
// ("b", 2)
// ("c", 3)
for (i,j) in sequenceZip {
print("문자:\(i), 숫자:\(j)")
}
// 문자: a, 번호 1
// 문자: b, 번호 2
// 문자: c, 번호 3
* map: 데이터를 변형하고자 할 때 사용. 기존 데이터를 변형하여 새로운 컨테이너를 만드는데 기존 데이터는 변형되지 않는다.
* for-in문
let arr = [1,3,5,7,9]
var multiArray = [Int]()
for num in arr {
multiArray.append(num*2)
}
print(multiArray)
* map
let arr = [1,3,5,7,9]
let multiArray = arr.map{$0*2}
print(multiArray)
* filter: 데이터를 추출하고자 할 때 사용. 기존 컨테이너에서 내부의 값을 걸러 새로운 컨테이너를 만든다.
* for-in문
let strArr = ["가","가나","가나다","가나다라","가나다라마"]
var countArr = [String]()
for str in strArr {
if str.count >= 3 {
countArr.append(str)
}
}
print(countArr)
// ["가나다","가나다라","가나다라마"]
* filter함수
let strArr = ["가","가나","가나다","가나다라","가나다라마"]
let countArr = strArr.filter{$0.count<3}
print(countArr)
// ["가","나"]
- for-in문보다 map이나 filter함수를 사용하면 코드가 훨씬 간결해진다.