😇
TypeScriptで組み合わせの関数を自作する
前提
順列関数と同様に再帰を利用して実装する。
理由は下の記事と同様です。
ソースコード
combination.ts
function combination(elements: number[], depth: number): number[][] {
let answer: number[][] = [];
if (depth === 1) {
for (let i = 0; i < elements.length; i++) {
answer[i] = [elements[i]];
}
} else {
let part = elements.slice(0);
for (let i = 0; i < elements.length; i++) {
let firstEl = part.splice(0, 1);
let row = combination(part, depth - 1);
for (let i = 0; i < row.length; i++) {
answer.push([firstEl[0]].concat(row[i]));
}
}
}
return answer;
}
Discussion