加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Swift filter函数介绍

发布时间:2020-12-14 06:38:36 所属栏目:百科 来源:网络整理
导读:filter用于选择数组元素中满足某种条件的元素。 比如一个金额数组,筛选出金额大于30元素 先看一下传统实现: var filteredArray:[Int]=[] for money in moneyArray{ if (money30){ filteredArray+=[money] } } 我们惟一感兴趣的是 money 30, 下面使用filte

filter用于选择数组元素中满足某种条件的元素。

比如一个金额数组,筛选出金额大于30元素

先看一下传统实现:

var filteredArray:[Int]=[]
for money in moneyArray{
if (money>30){
filteredArray+=[money]
}
}

我们惟一感兴趣的是money > 30,下面使用filter来定义同样的逻辑。

Swift中filter在Array类中的定义为:

filter(includeElement: (T) -> Bool) -> T[]

以返回true或false的函数includeElement作为参数,对原数组元素调用includeElement时,只有返回true的元素会通过筛选

对数组筛选,我们只需使用

filteredArray=moneyArray.filter({$0>30})
{$0 > 30}为筛选闭包,我们忽略了参数名而使用默认参数$0,返回类型隐式推断为Bool


了解了基本用法,下面我们用他来做一点有意思的事情:比如求个交并补集

let numberArray = [10,20,45,32,1,2,3,4,30,55]
let numberArray2 = [10,50]
print(numberArray.filter{numberArray2.contains($0)}) //交集
print(numberArray.filter{!numberArray2.contains($0)}) //补集
print(numberArray.filter{!numberArray2.contains($0)} + numberArray2) //并集

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读