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中文网其他相关文章!