1. filter (过滤器):返回符合条件的一个数组
let arr = [1,5,6,7,10,0]
//写法1
let arr1 = arr.filter { (item) -> Bool in
return item % 2 == 0
}
//写法2
let resultArray = arr.filter { return $0%2 == 0 }
//写法3
let arr2 = arr.filter({return $0%2 == 0})
2.index(符合条件的索引):返回int值
let arr = [1,5,6,7,10,0]
//写法1:swift 4.0
let index = arr.index(where: {$0 == 1})
//swift4.2 firstIndex:从前往后遍历,
let index2 = arr.firstIndex(where:{$0 == 1})
let index3 = arr.firstIndex { (item) -> Bool in
return item == 1
}
//lastIndex:c从后往前遍历
let index4 = arr.lastIndex(where:{$0 == 1})
let index5 = arr.lastIndex(of: 5)
if index5 != nil{
print("打印一下")
}
3. contains(包含):返回bool值
let arr = [1,5,6,7,10,0]
//写法1
let isContains = arr.contains(where: {$0 == 3})
//写法2
let isContains1 = arr.contains { (item) -> Bool in
return item == 100
}
//写法3 直接调用函数
arr.contains(10)
print(arr.contains(3))
4. foreach: 和for in快速遍历 类似, 但是return 条件时,返回不一样
if self.view.subviews.count > 0{
self.view.subviews.forEach({$0.removeFromSuperview()})
}
注意点:
在使用return关键字的时候,很明显,for in中是当符合当前执行语句时,程序直接终止到此并返回, 比如上面的元素 "4"、"5"、"Hello World" 没有被执行;而forEach中是当符合当前执行语句时,程序跳过本次判断继续执行, 比如上面的元素"4"、"5"、"Hello World"被执行。
foreach: 和for in 具体区别:https://www.jianshu.com/p/0f75c23773b5