A clean JavaScript solution using splice()
:
Object.defineProperty( Array.prototype, 'eachConsecutive', {
value:function(n){
var copy = this.concat(), result = [];
while (copy.length) result.push( copy.splice(0,n) );
return result;
}
});
var someArray = ['val1','val2','val3','val4','val5','val6','val7','val8','val9','val10','val11','val12'];
var chunked = someArray.eachConsecutive(4);
//-> [["val1","val2","val3","val4"],["val5","val6","val7","val8"],["val9","val10","val11","val12"]]
source
share