NEW: Master Swift design patterns with my latest book! >>

How to split an array into chunks

Written by Paul Hudson    @twostraws

If you have an array of elements and you want to split them into chunks of a size you specify, here’s a useful extension you can add to your code:

extension Array {
    func chunked(into size: Int) -> [[Element]] {
        return stride(from: 0, to: count, by: size).map {
            Array(self[$0 ..< Swift.min($0 + size, count)])
        }
    }
}

That converts an array into an array of arrays, using whatever size you specify. For example, if you have the numbers 1 to 100 in an array and you want to split it so that there are many arrays containing five numbers each, you’d write this:

let numbers = Array(1...100)
let result = numbers.chunked(into: 5)

Available from iOS 8.0

Did this solution work for you? Please pass it on!

Other people are reading…

About the Swift Knowledge Base

This is part of the Swift Knowledge Base, a free, searchable collection of solutions for common iOS questions.

Learn Swift faster!

Take your Swift learning to the next level: buy the Hacking with Swift e-book and get bonus material to help you learn faster!

Click here to visit the Hacking with Swift store >>