shinnoske0727
6/7/2019 - 11:45 AM

配列の組み合わせを再帰的に取得するやつ

function getCombination<T>(array: T[], num: number):T[][] {
  if (num < 1) return [];
  if (num === 1) return array.map((item) => [item]);
  return flatten(array.map((head, i) => {
    return getCombination(array.slice(i + 1), num - 1).map((subArray) => [head].concat(subArray));
  }));
}