Swift map、filter、reduce函數(shù)

  1. 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
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容