Swift陣列的sort、filter、forEach、map等方法,$的使用
阿新 • • 發佈:2018-12-17
swift自動為閉包提供引數名縮寫功能,可以直接通過$0和$1等來表示閉包中的第一個第二個引數,並且對應的引數型別會根據函式型別來進行判斷。並且in關鍵字也可以省略,只寫函式體就可以了。
例如
arr.sorted { (a, b) in
return a < b
}
相當於
arr.sorted { $0 < $1 }
1.sort:陣列排序
例如
let arr = [1,4,2,5,3]
let sortArr = arr.sorted { $0 < $1 }
print(sortArr)
對model陣列排序
let sortArr = books.sorted { $0.id < $1.id } print(sortArr)
2.filter:過濾陣列中的元素,閉包裡只寫過濾的條件即可。
例如
let arr = [1,4,2,5,3]
let filterArr = arr.filter { $0 == 1 }
print(filterArr)
使用filter過濾viewController
if let viewControllers = navigationController?.viewControllers { navigationController?.viewControllers = viewControllers.filter { $0.isKind(of: GenerateEnterPasswordController.self) == false } }
3.forEach:陣列遍歷
let arr = [1,4,2,5,3]
arr.forEach { print($0) }
4.map:陣列中的每一個元素都做一次指定操作之後,返回一個新的陣列
let arr = [1,4,2,5,3]
let mapArr = arr.map { $0 - 1 }
5.flatMap:陣列中的每一個元素都做一次指定操作之後,返回一個新的陣列B。(指定此操作必須返回一個數組A,陣列A將被新增到陣列B中)。
let arr = [1,4,2,5,3] let flatMapArr = arr.flatMap { i in return [(i, 0)] } print(flatMapArr)
6.dropFirst:除去第一個元素以外的部分元素
dropFirst(n):除去前n個元素以外的部分元素
let arr = [1,4,2,5,3]
arr.dropFirst().forEach { print($0) }
7.dropLast:除去倒數第一個元素以外的部分元素
dropLast(n):除去倒數後n個元素以外的部分元素
let arr = [1,4,2,5,3]
arr.dropLast(3).forEach { print($0) }