[swift - zip, map, filter]

Yr Yr·2023년 11월 30일

TIL

목록 보기
6/39

* 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함수를 사용하면 코드가 훨씬 간결해진다.

0개의 댓글