なぜ
- each_sliceなかったから
- あるのかもしれんがぐぐってもでてこんかった
なに
- 配列内の要素を指定した数値で分割した返してくれるやーつ
var wasshoi = ["a", "n", "c", "ika", "tako"]
を
let result = wasshoi.eachSlice(2)~
[["a", "n"], ["c", "ika"], ["tako"]]
みたいに分けてくれるやつがほしかった
早速じっそう
なかみすごいシンプル
extension Array {
func eachSlice<S>(sliceCnt: Int, transform: [Element] -> S) -> [S] {
var result = [S]()
for from in 0.stride(to: self.count, by: sliceCnt) {
let to = from.advancedBy(sliceCnt, limit: self.count)
result.append(transform(Array(self[from ..< to])))
}
return result
}
}
使用方法
wasshoi.eachSlice(2) { slicedArray in
// ["a", "b"]とかが帰ってくるよ
}