今回ご紹介するのは、配列操作のメソッドについてです。
今更感はありますが、お付き合いください。
##map
配列の全ての要素に対して、順に処理を行い新しい配列として返します。
※$0の引数には配列の要素が入ります。
let list = [1, 2, 3, 4, 5]
let result = list.map({ $0 * 2 })
print(result) // [2, 4, 6, 8, 10]
##reduce
配列の要素の集計を行いたい時に使用します
クロージャには合計式を書き、第一引数に初期値をいれます。
let list = [1, 2, 3, 4, 5]
let total1 = list.reduce(0){ $0 + $1 }
let total2 = list.reduce(1, combine: { $0 * $1 })
print(total1) // 15
print(total2) // 120
##filter
配列をクロージャ部分の条件によってフィルタリングし、新しい配列として返します。
let list = [1, 2, 3, 4, 5]
let result = list.filter({ $0 % 2 == 0 })
print(result) // [2,4]
条件をメソッドに分けてフィルタリングすることもできます。
func calc(x: Int) -> Bool {
if x % 2 == 0 {
return true
} else {
return false
}
}
let list = [1, 2, 3, 4, 5]
let result = list.filter({ calc($0) })
print(result) // [2,4]
ざっと簡潔に書きましたが、使いこなせるとより良いコードが掛けそうですね。