Get Square Binary Combos by Size and Dimensions

by Josh Pullen

JavaScript

String.prototype.chunk = function(size) {
    return [].concat.apply([],
        this.split('').map(function(x,i){ return i%size ? [] : this.slice(i,i+size) }, this)
    )
}

function dec2Bin(n, digits) {
    var result = Number(n).toString(2);
    while (result.length < digits) {
        result = "0" + result;
    }
    return result;
}
function getAllCombos(size, dimensions) {
    var result = [];
    var max = Math.pow(2, Math.pow(size, dimensions));
    for(i = 0; i < max; i++) {
        result.push(dec2Bin(i, Math.pow(size, dimensions)).chunk(size));
    }
    return result;
}

console.log(getAllCombos(2, 2));