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) }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值