benjamincharity
6/24/2015 - 12:24 PM

Split an array into an array of arrays of a specific length. Source: http://stackoverflow.com/questions/8495687/split-array-into-chunks/104

Split an array into an array of arrays of a specific length.

Source: http://stackoverflow.com/questions/8495687/split-array-into-chunks/10456644#10456644

// Prototype method
Array.prototype.chunk = function(chunkSize) {
    var array=this;
    return [].concat.apply([],
        array.map(function(elem,i) {
            return i%chunkSize ? [] : [array.slice(i,i+chunkSize)];
        })
    );
};
//
// Demo
// [1,2,3,4,5,6,7].chunk(3);
//
// Outputs:
// [
//    [1,2,3],
//    [4,5,6],
//    [7]
// ]

//Function method
var splitArray = function(array, chunkSize) {
    return [].concat.apply(
        [],
        array.map(function(elem, i) {
            return i%chunkSize ? [] : [array.slice(i, i+chunkSize)];
        })
    );
};
//
// Demo
// splitArray([1,2,3,4,5,6,7], 7);
//
// Outputs:
// [
//    [1,2,3],
//    [4,5,6],
//    [7]
// ]