JavaScript 中的排列產生
要在 JavaScript 中產生整數陣列的排列,可以使用遞歸函數。目的是採用整數數組作為輸入,並傳回一個包含所有可能排列的數組,每個排列的長度與輸入數組相同。
修改的排列函數
可以透過考慮方法對整數和整數進行操作的差異來修改提供的字串排列函數字串:
const permArr = []; const usedNums = []; function permuteIntegers(input) { for (let i = 0; i < input.length; i++) { const num = input.splice(i, 1)[0]; usedNums.push(num); if (input.length === 0) { permArr.push([...usedNums]); } permuteIntegers(input); input.splice(i, 0, num); usedNums.pop(); } return permArr; }
更短和現代的版本(ES6)
使用現代JavaScript功能,可以簡化上述函數:
const permutator = (inputArr) => { const result = []; const permute = (arr, memo = []) => { if (arr.length === 0) { result.push(memo); } else { for (let i = 0; i < arr.length; i++) { const curr = arr.slice(); const next = curr.splice(i, 1)[0]; permute(curr, memo.concat(next)); } } }; permute(inputArr); return result; };
使用範例
兩個函數都可以用來產生整數陣列的排列:
console.log(permuteIntegers([1, 2, 3])); // Output: [[1, 2, 3], [1, 3, 2], [2, 1, 3], [2, 3, 1], [3, 1, 2], [3, 2, 1]] console.log(permutator([1, 2, 3])); // Output: same as above
以上是如何在 JavaScript 中產生整數陣列的所有排列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!