Swift - sort, sorted
2020. 6. 29. 13:12ㆍLanguage/Swift
반응형
sort()
배열을 오름 및 내림차순으로 정렬해준다.
var array = [2,1,3,5,7,6,10,9,4,8]
// [2, 1, 3, 5, 7, 6, 10, 9, 4, 8]
array.sort()
// [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
array.sort(by: >)
// [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
array.sort(by: <)
// [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
sorted()
Returns the elements of the sequence, sorted.
오름 및 내림차순으로 정렬하여 배열을 반환하여 준다.
var array = [2,1,3,5,7,6,10,9,4,8]
var sortArray = array.sorted()
print(array)
// [2, 1, 3, 5, 7, 6, 10, 9, 4, 8]
print(returnArray)
// [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
후행 클로저
후행 클로저를 사용하면 딕셔너리타입의 데이터 컨테이너 또한 정렬하여 반환 받을 수 있으며,
구조체는 정렬 및 반환 받을 수 있다.
var dic: Dictionary<Int, Int> = [ 2 : 0, 1 : 0, 3 : 0, 5 : 0, 7 : 0,
6 : 0, 10 : 0, 9 : 0, 4 : 0, 8 : 0]
// 오름 차순 정렬
let asceDic = dic.sorted { (left: Dictionary<Int, Int>.Element, right: Dictionary<Int, Int>.Element) -> Bool in
return left.key < right.key
}
// [(key: 1, value: 0), (key: 2, value: 0), (key: 3, value: 0), (key: 4, value: 0), (key: 5, value: 0), (key: 6, value: 0), (key: 7, value: 0), (key: 8, value: 0), (key: 9, value: 0), (key: 10, value: 0)]
// 내림차순 정렬
let descDic = dic.sorted { (left: Dictionary<Int, Int>.Element, right: Dictionary<Int, Int>.Element) -> Bool in
return left.key > right.key
}
// [(key: 10, value: 0), (key: 9, value: 0), (key: 8, value: 0), (key: 7, value: 0), (key: 6, value: 0), (key: 5, value: 0), (key: 4, value: 0), (key: 3, value: 0), (key: 2, value: 0), (key: 1, value: 0)]
var arrayA: [A] = [A(a: 1, b: 0), A(a: 5, b: 0), A(a: 2, b: 0), A(a: 3, b: 0), A(a: 4, b: 0)]
// [.A(a: 1, b: 0), .A(a: 5, b: 0), .A(a: 2, b: 0), .A(a: 3, b: 0), .A(a: 4, b: 0)]
arrayA.sort { (left: A, right: A) -> Bool in
return left.a > right.a
}
// [.A(a: 5, b: 0), .A(a: 4, b: 0), .A(a: 3, b: 0), .A(a: 2, b: 0), .A(a: 1, b: 0)]
또한 아래 처럼 파라미터와 리턴값 까지 모두 생략하여 사용 할 수 있다.
var dic: Dictionary<Int, Int> = [ 2 : 0, 1 : 0, 3 : 0, 5 : 0, 7 : 0,
6 : 0, 10 : 0, 9 : 0, 4 : 0, 8 : 0]
let descDic = dic.sorted { $0.key > $1.key }
// [(key: 10, value: 0), (key: 9, value: 0), (key: 8, value: 0), (key: 7, value: 0), (key: 6, value: 0), (key: 5, value: 0), (key: 4, value: 0), (key: 3, value: 0), (key: 2, value: 0), (key: 1, value: 0)]
반응형
'Language > Swift' 카테고리의 다른 글
Swift - flatMap, compactMap (0) | 2020.07.02 |
---|---|
Swift - stride (0) | 2020.07.01 |
Swift - map (0) | 2020.06.29 |
Swift - filter (0) | 2020.06.29 |
Swift - forEach (0) | 2020.06.29 |