配列に、Swiftになってから新たに便利なメソッドが追加されました。
filter
クロージャに抽出条件を書き、そのクロージャの返り値がtrueの場合のみの配列を返す。
|
1 2 3 4 5 |
var list1 = [1 ,2 ,3 ,4 ,5 ] list1.filter { (val:Int) -> Bool in return val % 2 == 0 //[2,4] } |
map
クロージャが返した値の配列を返す。
|
1 2 3 |
list1.map { (val:Int) -> Int in return val + 1 //[2,3,4,5,6] } |
reduce
配列の中の2要素から計算して、その結果を返す。さらにその結果から次の要素を計算して結果を返し、それを配列分繰り返した値を返す。
|
1 2 3 4 5 |
let val = list1.reduce(0){ (a:Int, b:Int) -> Int in return a + b } //11 |
sort
クロージャで引数、第二引数とを比較する。
|
1 2 3 |
list1.sort { (a:Int, b:Int) -> Bool in return b < a //15 } |