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

Hàm JavaScript tạo tất cả các kết hợp có thể có của một chuỗi

Chúng tôi được yêu cầu viết một hàm JavaScript lấy một chuỗi làm đối số duy nhất. Hàm phải tạo một mảng các chuỗi chứa tất cả các chuỗi con liền kề có thể tồn tại trong mảng.

Ví dụ

Sau đây là mã -

const str = 'Delhi';
const allCombinations = (str1 = '') => {
   const arr = [];
   for (let x = 0, y=1; x < str1.length; x++,y++) {
      arr[x]=str1.substring(x, y);
   };
   const combination = [];
   let temp= "";
   let len = Math.pow(2, arr.length);
   for (let i = 0; i < len ; i++){
      temp= "";
      for (let j=0;j<arr.length;j++) {
         if ((i & Math.pow(2,j))){
            temp += arr[j];
         }
      };
      if (temp !== ""){
         combination.push(temp);
      }
   }
   return combination;
};
console.log(allCombinations(str));

Đầu ra

Sau đây là kết quả trên bảng điều khiển -

[
   'D', 'e', 'De', 'l',
   'Dl', 'el', 'Del', 'h',
   'Dh', 'eh', 'Deh', 'lh',
   'Dlh', 'elh', 'Delh', 'i',
   'Di', 'ei', 'Dei', 'li',
   'Dli', 'eli', 'Deli', 'hi',
   'Dhi', 'ehi', 'Dehi', 'lhi',
   'Dlhi', 'elhi', 'Delhi'
]