Swift 数组分组

2018-12-30  本文已影响0人  相约星期二GM
extension Sequence {
    func clump(by clumpsize:Int) -> [[Element]] {
        let slices : [[Element]] = self.reduce(into:[]) {
            memo, cur in
            if memo.count == 0 {
                return memo.append([cur])
            }
            if memo.last!.count < clumpsize {
                memo.append(memo.removeLast() + [cur])
            } else {
                memo.append([cur])
            }
        }
        return slices
    }
}

let arr = [1, 2, 3, 4, 5]
arr.clump(by:2)
// [[1, 2], [3, 4], [5]]

上一篇 下一篇

猜你喜欢

热点阅读