Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

JavaScript에서 주어진 수의 요소로 배열의 순열을 만드는 방법

<시간/>

리터럴 배열을 첫 번째 인수로, 숫자를 두 번째 인수로 취하는 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 ]
]