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 裝置狀態用文字展示。用三種方式分別來實現...