-
Swift Language) sort, map, filter, reduceSwift/Tips & Tricks 2021. 9. 29. 13:57
sort, sorted
sort: 자신 (array) 를 정렬
sorted: array 를 정렬해서 return (새로운 값에 할당, array 자체는 그대로 유지)
var numArr = [1,3,2,1,5] let newArr = numArr.sorted() // newArr: [1,1,2,3,5], numArr: [1,3,2,1,5] numArr.sort() // numArr: [1,1,2,3,5] numArr.sort(by: >) // decending order. // numArr: [5,3,2,1,1]
map
array의 각 element 에 대하여 어떤 logic 을 수행,
logic 이 적용된 각 element 를 새로운 array 로 묶어 return ( 순서 유지)
let numArr = [1,3,2,1,5] // 1. 각 element 에 2 를 곱한 값을 새로운 array 에 저장 // 1.1 가장 기초적인 mapping 형태 let mappedArr = numArr.map { element in return element * 2 } // mappedArr : [2,6,4,2,10] // 1.2 '$' 를 사용하는 경우 let mappedArr2 = numArr.map { $0 * 2 } // Swift 가 각 element 를 $0 이라는 값에 자동으로 넣어줌. 이 때 return 생략 가능 (한줄 코드) // mappedArr2 : [2,6,4,2,10] // 2. 각 element 를 Int type 에서 string type 으로 바꾼 array // 2.1 input, return type 을 지정해서 mapping 하는 경우 let mappedArr3 = numArr.map { (num: Int) -> String in return "\(num)" } // mappedArr3 : ["1","3","2","1","5" // 2.2 '$' 를 사용하는 경우 let mappedArr4 = numArr.map { "\($0)" } // Swift 가 각 element 를 $0 이라는 값에 자동으로 넣어줌. 이 때 return 생략 가능 (한줄 코드) // mappedArr4 : ["1","3","2","1","5"
filter
array 내에서 어떤 condition 을 만족하는 값들만 새로운 array 로 묶어 return (순서 유지)
let numArr = [1,3,2,1,5,6] let oddNumbers = numArr.filter { element in return element % 2 == 1 } // oddNumbers : [1,3,1,5] // return 없이, $ 활용 let evenNumbers = numArr.filter { $0 % 2 == 0 } //evenNumbers: [2,6]
reduce
array 의 각 element 들을 logic 에 따라 하나의 값으로 합쳐서 return
let numArr.= [1,3,2,1,5,6] let reduced = numArr.reduce(0) { result, element in return result + element } // reduced: 18 let reduced2 = numArr.reduce(0) { $0 + $1 } // reduced2: 18
'Swift > Tips & Tricks' 카테고리의 다른 글
Swift 개발 / 배포 코드 다르게 하기 (if DEBUG) (0) 2022.04.08 Rx Swift Cocoa pods 로 설치하기, playground 연습 환경 구축 (0) 2022.03.23 Swift Tips and Tricks - .enumerated() (0) 2021.10.12 Swift Tips & Tricks) Pattern matching operator ~= (0) 2021.10.12 Swift Tips & Tricks - defer (0) 2021.09.14