sugar
Version:
A Javascript utility library for working with native objects.
31 lines (25 loc) • 812 B
JavaScript
;
var Sugar = require('sugar-core'),
isDefined = require('../common/internal/isDefined'),
mathAliases = require('../common/var/mathAliases'),
simpleRepeat = require('../common/internal/simpleRepeat');
var ceil = mathAliases.ceil;
Sugar.Array.defineInstance({
'inGroups': function(arr, num, padding) {
var pad = isDefined(padding);
var result = new Array(num);
var divisor = ceil(arr.length / num);
simpleRepeat(num, function(i) {
var index = i * divisor;
var group = arr.slice(index, index + divisor);
if (pad && group.length < divisor) {
simpleRepeat(divisor - group.length, function() {
group.push(padding);
});
}
result[i] = group;
});
return result;
}
});
module.exports = Sugar.Array.inGroups;