- map 可以對數(shù)組中的每一個元素做一次處理
// $0代表數(shù)組中的每一個元素
stringArray.map{
return $0.characters.count
}
2.flatMap與map不同之處:
flatMap返回后的數(shù)組中不存在nil,同時它會把Optional解包
flatMap還能把數(shù)組中存有數(shù)組的數(shù)組(二維數(shù)組、N維數(shù)組)一同打開變成一個新的數(shù)組
let array = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
let arr2 = array.flatMap{ $0 }
arr2 // [1, 2, 3, 4, 5, 6, 7, 8, 9]
flatMap也能把兩個不同的數(shù)組合并成一個數(shù)組,這個合并的數(shù)組元素個數(shù)是前面兩個數(shù)組元 素個數(shù)的乘積
let fruits = ["apple","orange","puple"]
let counts = [2,3,5]
let arrNew = counts.flatMap { count in
fruits.map({ fruit in
return fruit + "\(count)"
})
}
arrNew ["apple2", "orange2", "puple2", "apple3", "orange3", "puple3", "apple5", "orange5", "puple5"]
3.filer:過濾,可以對數(shù)組中的元素按照某種規(guī)則進行一次過濾
// $0表示數(shù)組中的每一個元素
stringArray.filter{
return $0.characters.count < 10
}
4.reduce:計算,可以對數(shù)組的元素進行計算
let stringArray = ["Objective-C", "Swift", "HTML", "CSS", "JavaScript"]
//第一個參數(shù)是初始值
print(stringArray.reduce("aaa", {
return $0 == "" ? $1 : $0 + "、" + $1
}))
aaa、Objective-C、Swift、HTML、CSS、JavaScript