JavaScript中我看到有意思的一张图。
用Swift来一套
map对应Swift使用如下
override func viewDidLoad() {
super.viewDidLoad()
//Map的使用
var array = [1,2,3,4,5]
let result = array.map {$0 * 2}
print(result)
let result2 = array.map { item in
return item + 10
}
print(result2)
var array2 = ["🐮","🐮","🐮","🐮","🐮"]
let result3 = array2.map {_ in
return "🐶"
}
print(result3)
}
输出如下
[2, 4, 6, 8, 10]
[11, 12, 13, 14, 15]
["🐶", "🐶", "🐶", "🐶", "🐶"]
过滤器filter
的使用
override func viewDidLoad() {
super.viewDidLoad()
let array = ["🐷","🐶","🐶","🐑","🐶"]
let result = array.filter { str in
return str == "🐶"
}
print(result)
let numberArray = [1,5,2,4,3,6]
let result2 = numberArray.filter { index in
return index > 3
}
print(result2)
let numberStr = "1234567890"
let result3 = numberStr.filter { char in
return true
}
print(result3)
print("----------")
let result4 = numberStr.filter { char in
return false
}
print(result4)
print("----------")
}
输出如下:
["🐶", "🐶", "🐶"]
[5, 4, 6]
1234567890
----------
----------
every、some、fill在Swift都没有体现
而对于JavaScipte中的findindex、index 方法对应Swift中也有相应的方法
。
override func viewDidLoad() {
super.viewDidLoad()
let array = ["第1","第2","第3","第4","第5"]
let result = array.index(after: 0) // 取后一个Index
let result2 = array.index(before: 1) // 前一个Index,如果为0 有catch
let result3 = array.index(2, offsetBy: 2)
print(array[result])
print(array[result2])
print(array[result3])
print("------")
let str = "Hello World!"
print(str[str.index(str.startIndex, offsetBy: 6)])
print("------")
}
输出如下:
第2
第1
第5
------
W
------
不管在什么语言里reduce
,就是做用于做序列元素的累加,如数组元素的累加。
使用如下:
override func viewDidLoad() {
super.viewDidLoad()
let array = [1,2,3,4,5,6]
let result = array.reduce( 0) { partialResult, ResultY in
partialResult + ResultY
}
print(result)
}
输出结果为21