1. 程式人生 > >Swift陣列的sort、filter、forEach、map等方法,$的使用

Swift陣列的sort、filter、forEach、map等方法,$的使用

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) }