JSFiddle - React, Tailwind, and code Playground

JavaScript

const generateSubsets = (inp) => {
  if (!Array.isArray(inp)) {
    return;
  }
  let subsets = [];

  for (const val of inp) {
    const tempSubsets = [...subsets];

    for (const currSubset of tempSubsets) {
      subsets.push([...currSubset, val]);
    }

    subsets.push([val]);
  }

  subsets.push([]);
  return subsets;
};

console.log(generateSubsets([1, 2, 3]));