Computer >> Máy Tính >  >> Lập trình >> Javascript

Tạo tất cả các kết hợp của các từ được cung cấp trong JavaScript

Chúng tôi được yêu cầu viết một hàm JavaScript sử dụng một mảng chuỗi. Sau đó, hàm sẽ tạo và trả về tất cả các kết hợp có thể có của các chuỗi trong mảng.

Ví dụ

Mã cho điều này sẽ là -

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);

Ví dụ

Và đầu ra trong bảng điều khiển sẽ là -

[
   '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'
]