swift摘要

Swift map、filter、reduce函数

2018-11-06  本文已影响1人  笙绳省盛
  1. map 可以对数组中的每一个元素做一次处理
// $0代表数组中的每一个元素
stringArray.map{
    return $0.characters.count
}

2.flatMap与map不同之处:
flatMap返回后的数组中不存在nil,同时它会把Optional解包

flatMap还能把数组中存有数组的数组(二维数组、N维数组)一同打开变成一个新的数组

   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也能把两个不同的数组合并成一个数组,这个合并的数组元素个数是前面两个数组元 素个数的乘积

        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:过滤,可以对数组中的元素按照某种规则进行一次过滤

// $0表示数组中的每一个元素
stringArray.filter{
    return $0.characters.count < 10
}

4.reduce:计算,可以对数组的元素进行计算

        let stringArray = ["Objective-C", "Swift", "HTML", "CSS", "JavaScript"]
        //第一个参数是初始值
        print(stringArray.reduce("aaa", {
            return $0 == "" ? $1 : $0 + "、" + $1
        }))
       aaa、Objective-C、Swift、HTML、CSS、JavaScript
上一篇下一篇

猜你喜欢

热点阅读