리터럴 배열을 첫 번째 인수로, 숫자를 두 번째 인수로 취하는 JavaScript 함수를 작성해야 합니다.
함수는 두 번째 인수에 의해 지정된 숫자와 길이가 같고 입력 배열 요소의 가능한 모든 순열을 포함하는 모든 배열의 배열을 구성해야 합니다.
예를 들어 -
입력 배열과 숫자가 -
인 경우const arr = ['k', 5]; const num = 3;
그러면 출력은 다음과 같아야 합니다. -
const output = [ [ 'k', 'k', 'k' ], [ 'k', 'k', 5 ], [ 'k', 5, 'k' ], [ 'k', 5, 5 ], [ 5, 'k', 'k' ], [ 5, 'k', 5 ], [ 5, 5, 'k' ], [ 5, 5, 5 ] ];
예시
다음은 코드입니다 -
const arr = ['k', 5]; const num = 3; const allPairs = (arr = [], num) => { const res = []; if(num === 0){ return [[]]; } const subResult = allPairs(arr, num - 1); for(let el of arr){ for(let sub of subResult){ res.push([el].concat(sub)); } } return res; } console.log(allPairs(arr, num));
출력
다음은 콘솔 출력입니다 -
[ [ 'k', 'k', 'k' ], [ 'k', 'k', 5 ], [ 'k', 5, 'k' ], [ 'k', 5, 5 ], [ 5, 'k', 'k' ], [ 5, 'k', 5 ], [ 5, 5, 'k' ], [ 5, 5, 5 ] ]