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

JavaScript에서 제공된 단어의 모든 조합 생성

<시간/>

문자열 배열을 받는 JavaScript 함수를 작성해야 합니다. 그런 다음 함수는 배열 문자열의 가능한 모든 조합을 생성하고 반환해야 합니다.

예시

이에 대한 코드는 -

const arr = ['a', 'b', 'c', 'd'];
const permutations = (len, val, existing) => {
   if(len==0){
      res.push(val);
      return;
   }
   for(let i=0; i<arr.length; i++){
      // so that we do not repeat the item, using an array here makes it
      O(1) operation
      if(!existing[i]){
         existing[i] = true;
         permutations(len−1, val+arr[i], existing);
         existing[i] = false;
      }
   }
}
let res = [];
const buildPermuations = (arr = []) => {
   for(let i=0; i < arr.length; i++){
      permutations(arr.length−i, "", []);
   }
};
buildPermuations(arr);
console.log(res);

예시

콘솔의 출력은 -

[
   'abcd', 'abdc', 'acbd', 'acdb', 'adbc', 'adcb',
   'bacd', 'badc', 'bcad', 'bcda', 'bdac', 'bdca',
   'cabd', 'cadb', 'cbad', 'cbda', 'cdab', 'cdba',
   'dabc', 'dacb', 'dbac', 'dbca', 'dcab', 'dcba',
   'abc', 'abd', 'acb', 'acd', 'adb', 'adc',
   'bac', 'bad', 'bca', 'bcd', 'bda', 'bdc',
   'cab', 'cad', 'cba', 'cbd', 'cda', 'cdb',
   'dab', 'dac', 'dba', 'dbc', 'dca', 'dcb',
   'ab', 'ac', 'ad', 'ba', 'bc', 'bd',
   'ca', 'cb', 'cd', 'da', 'db', 'dc',
   'a', 'b', 'c', 'd'
]