Get groupings of items in an array
JavaScript
function getGroupings(arr, numPerGroup){
numPerGroup > 1 || (numPerGroup = 2);
var groups = Math.pow(arr.length, numPerGroup);
var groupings = [];
for (var i = 0; i < numPerGroup; i++) {
for (var j = 0; j < groups; j++) {
groupings[j] || groupings.push(Array(numPerGroup));
var index = Math.floor(j / Math.pow(arr.length, i)) % arr.length;
groupings[j][i] = arr[index];
if (i === numPerGroup - 1) groupings[j] = groupings[j].reverse();
}
}
return groupings;
}
var arr = [0, 1, 2];
var arr2 = [3, 6, 9, 12, 15];
console.log(getGroupings(arr, 4));