const getBooleanTable = number => Array(Math.pow(2, number)) .fill() .map((_, idx) => idx) .map(num => num.toString(2).padStart(number, '0')) .map(stringOfBits => stringOfBits.split('').map(bit => Boolean(parseInt(bit))) ) console.log(getBooleanTable(3)) // [ // [false, false, false], // [false, false, true], // [false, true, false], // [false, true, true], // [true, false, false], // [true, false, true], // [true, true, false], // [true, true, true] // ]