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