JSFiddle - React, Tailwind, and code Playground
JavaScript
const generateSubsets = (inp) => {
if (!Array.isArray(inp)) {
return;
}
var n = inp.length;
var allSubsets = [];
for (var i = 0; i < (Math.pow(2, n)); i++) {
var subset = [];
for (var j = 0; j < n; j++) {
if (i & (1 << j)) {
subset.push(inp[j]);
}
}
allSubsets.push(subset);
}
return allSubsets;
};
console.log(generateSubsets([1, 2, 3]));
// [[], [1], [2], [3], [1,2], [1,3], [2,3], [1,2,3]]