function getCombinations(arr, selectNumber) {
const results = [];
if (selectNumber === 1) {
return arr.map((value) => [value]); // 하나씩 반환
}
arr.forEach((fixed, index, array) => {
const rest = array.slice(index + 1); // 현재 요소 이후의 배열
const combinations = getCombinations(rest, selectNumber - 1); // 재귀 호출
const attached = combinations.map((combination) => [fixed, ...combination]); // 현재 요소와 조합을 붙임
results.push(...attached);
});
return results;
}
조합(Combinations)
읽는 시간 1분