Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

อัลกอริทึมเพื่อรับชุดค่าผสมของรายการทั้งหมดในอาร์เรย์ JavaScript


เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่ใช้อาร์เรย์ของตัวอักษรสตริง ฟังก์ชันควรสร้างและส่งคืนชุดค่าผสมที่เป็นไปได้ทั้งหมดในอาร์เรย์

ตัวอย่างเช่น −

หากอาร์เรย์อินพุตเป็น −

const arr = ['a', 'b', 'c', 'd'];

จากนั้นผลลัพธ์ควรเป็น −

const output = ["a", "ab", "abc", "abcd", "abd", "ac", "acd", "ad", "b", "bc", "bcd", "bd", "c", "cd", "d"];

ตัวอย่าง

const getCombinations = (arr = []) => {
   const combine = (sub, ind) => {
      let result = []
      let i, l, p;
      for (i = ind, l = arr.length; i < l; i++) {
         p = sub.slice(0);
         p.push(arr[i]);
         result = result.concat(combine(p, i + 1));
         result.push(p.join(''));
      };
      return result;
   }
   return combine([], 0);
};
console.log(getCombinations(["a", "b", "c", "d"]));

ผลลัพธ์

และผลลัพธ์ในคอนโซลจะเป็น −

[
   'abcd', 'abc', 'abd',
   'ab', 'acd', 'ac',
   'ad', 'a', 'bcd',
   'bc', 'bd', 'b',
   'cd', 'c', 'd'
]