Swift之過濾器 filter

2021-07-11 17:31:06 字數 1916 閱讀 8337

swift

提供了很多方便的函式來運算元組,比如

filter,map,reduce,flatmap 等.今天我們了解一下 

filter ,顧名思義

就是用來過濾的,這是

swift

為每個陣列提供的乙個新式**,

filter

用於選擇陣列元素中滿足某種條件的元素。

假設有乙個陣列,接著想要建立乙個新的陣列,新陣列包含原陣列中所有大於

20的元素,我們可以使用下面的

for迴圈:

let array = array(5...25)

var anotherarray = [int]()

for i in array

}print(anotherarray) //[21, 22, 23, 24, 25]

上面已經實現功能了,但是我們可以使用更簡單的方式,那就是

filter函式,

let secondarray = array.filter 

print(secondarray) //[21, 22, 23, 24, 25]

**

對比之前還是簡單了一些:該函式帶乙個閉包做為引數,這個閉包將陣列中的元素作為引數,並返回乙個

bool

結果。陣列中的每乙個元素都會執行該閉包,根據返回的結果來決定是否應存在於新的陣列中。

通過swift

提供的閉包簡化寫法,我們可以進一步精簡:

let thirdarray = array.filter ()

print(thirdarray) // [21, 22, 23, 24, 25]

接下來看

filter

對陣列中字典過濾的例子。需求是:過濾出包含需要的字元部分!

var people = [

["first": "johnmusk", "last": "doe"],

["first": "steve", "last": "jobs"],

["first": "elon", "last": "musk"]

]var searchtext = "musk"

var searchresults = people.filter

print(searchresults)

//[["first": "johnmusk", "last": "doe"], ["first": "elon", "last": "musk"]]

對於上面過濾部分,我們

也可以進行如下:

let searchresult = people.filter

}return found

}print(searchresult)

//[["first": "johnmusk", "last": "doe"], ["first": "elon", "last": "musk"]]

當然,我們也可以使用謂詞進行過濾操作

let firstnamequery = "jo"

let lastnamequery = "mus"

let predicate = nspredicate(format: "%k contains[cd] %@ or %k contains[cd] %@", "first", firstnamequery, "last", lastnamequery)

let sorted = people.filter()

print(sorted)

//[["first": "johnmusk", "last": "doe"], ["first": "elon", "last": "musk"]]

Servlet之過濾器Filter

過濾器 filter 即是對資料等的過濾,預處理過程。為什麼要引入過濾器呢?在平常訪問 的時候,有時候發一些敏感的資訊,發出後顯示時就會將敏感資訊用 等字元替代,這就是用過濾器對資訊進行了處理。這只是乙個簡單的例子,當然,過濾器那麼強大,它的功能也不可能侷限於此,它不僅能預處理資料,只要是傳送過來的...

AngularJS 之 過濾器 Filter

一 內建過濾器 1 大小寫轉換 uppercase lowercase 2 json格式化 將物件轉換成json字串 預設輸出就是json字串 json 3 number格式化 1.2 1.235 1,234,567 4 currecy貨幣格式化 500.00 rmb 250.00 5 date格式...

Vue之過濾器filter

在官方文件中,是這樣說明的 可被用於一些常見的文字格式化,vue中過濾器的作用可被用於一些常見的文字格式化。也就是修飾文字,但是文字內容不會改變 過濾器分兩種 全域性過濾器 區域性過濾器 全域性過濾器使用頻率還是非常高的。兩個小例子 1 給金額前加 符號,2 裝置狀態用文字展示。用三種方式分別來實現...