Swift 3.0
使いどころがあるかは分かりませんが実験的に。
参考: Swiftでのenumerateの使い方
map
let array = [1, 2, 3, 4]
let m = array.enumerated().map { "\($0.0): \($0.1)" } // インデックスと要素のペア
print(m)
// ["0: 1", "1: 2", "2: 3", "3: 4"]
reduce
let array = [1, 2, 3, 4]
let r = array.enumerated().reduce(0) { $0 + $1.0 * $1.1 } // インデックスと要素の積の総和
print(r)
// 20 <- 0*1 + 1*2 + 2*3 + 3*4
filter
let array = [1, 2, 3, 4]
let f = array.enumerated().filter { $0.0 * $0.1 > 3 }.map { $0.1 } // インデックスと要素の積が3より大きいもの
print(f)
// [3, 4]
最後に
enumerateでの値の受け取り方についての詳しい実験は別の記事にしたいと思います。
【Swift】enumerateを使ったときの値の受け取り方
追記: 記事にしました。