[swift] Closure & Collection **연습하기(reduce, filter, map)
2023. 2. 24. 23:10ㆍ👩🏻💻 ios 앱개발 ( swift )
728x90

filter --> 특정 조건을 만족하는 배열 원소들만 가져올 수 있다.

item 전체를 가공시켜서 새로운 Item 만들기.
예) 모든 배열 요소에 90% 할인된 가격 적용 --> map

배열의 값들을 통해 하나의 값을 도출 -> reduce
ex) item들의 총합을 구할 때



price 변수를 통해 배열의 값들이 차례대로 들어옴
reduce는 딕셔너리에서도 유용하게 사용가능

도전과제
1. 이름의 Array 생성하고, reduce 이용해서 이름 모두 연결
2. 1에서 생성된 array에서 글자가 3개 이상인 이름을 filter로 걸러내고, 걸러낸 이름을 reduce를 이용해서 연결하기
3. 학생 딕셔너리 생성(키:이름, value: 나이), filter를 이용해서 20세 이상인 학생만 걸러내기
4. 3번에서 걸러낸 학생들... map을 이용해서 이름만 array로 만들기
//도전과제
//1. 이름의 Array 생성하고, reduce 이용해서 이름 모두 연결
let names = ["유연석", "에이멘", "귀여운칠봉이", "푸앙"]
let sentence = names.reduce("") { result, name in
return result + " " + name
}
//2. 1에서 생성된 array에서 글자가 3개 이상인 이름을 filter로 걸러내고, 걸러낸 이름을 reduce를 이용해서 연결하기
//M1
let filterResult = names.filter { name in
return name.count >= 3
}
//M2
let allName = names.filter { name in
return name.count >= 3
}.reduce("") { result, name in
return result + " " + name
}
//3. 학생 딕셔너리 생성(키:이름, value: 나이), filter를 이용해서 20세 이상인 학생만 걸러내기
let student = ["김감자": 24, "유연석":40, "문가영": 27, "솜펀치":10, "이지후":13]
let old = student.filter{stu in
return stu.value >= 20
}
//4. 3번에서 걸러낸 학생들... map을 이용해서 이름만 array로 만들기
let nameArr = old.map{stu in
return stu.key
}
reduce, filter, map은 실무에서도 많이 쓴다!!


'👩🏻💻 ios 앱개발 ( swift )' 카테고리의 다른 글
[swift] Class 상속 (0) | 2023.02.27 |
---|---|
[swift] Class vs. Structure (0) | 2023.02.27 |
[swift] Closure (0) | 2023.02.22 |
[swift] Collection (1) | 2023.02.17 |
[swift] optional (0) | 2023.02.16 |