map : 可以对数组中的每一个元素做一次处理
如果求一个数组中字符串的长度可以用 map来处理
//方法1
let array = ["Objective-C", "HTML", "CSS"]
//定义方法 返回传入的字符串的长度
func calcuCount(string: String) -> Int {
return string.characters.count
}
//使用 打印
print(array.map(stringCount))
// 方法2
print(fruits.map{return $0.characters.count})
reduce:可以对数组中的元素进行计算
// 将数组中的每个字符串用‘-’拼接
let array = ["Objective-C", "HTML", "CSS"]
func appendString(string1: String, string2: String) -> String {
return string1 == "" ? string2 : string1 + "-" + string2
}
// reduce方法中的第一个参数是初始值
print(array.reduce("第一个字符串", appendString))//打印第一个字符串-Objective-C-HTML-CSS
// $0表示计算后的结果, $1表示数组中的每一个参数
print(array.reduce("", {
return $0 == "" ? $1 : $0 + "-" + $1
}))
//打印 Objective-C-HTML-CSS
filer:过滤,可以对数组中的元素按照某种规则进行一次过滤
let stringArray = ["MJ-C", "Swift", "Cocos2d-x", "Python", "JavaScript"]
func stringCountLess10(string: String) -> Bool {
return string.characters.count < 10
}
stringArray.filter(stringCountLess10)
stringArray.filter({string -> Bool in
return string.characters.count < 10
})
// $0表示数组中的每一个元素
stringArray.filter{
return $0.characters.count < 10
}
后期会陆续更新....
flatmap 可以把数组继续 '切割'
// 用flatMap
let arrayFlatMap = arraya.flatMap { $0 }
print(arrayFlatMap)
// [1, 2, 3, 4, 5, 6, 7, 8, 9]
网友评论