JavaScript数组排列函数实现 - 生成所有组合
你可以使用递归来实现排列函数。以下是一个使用 JavaScript 编写的排列函数:
function permute(nums) {
const result = [];
function backtrack(nums, path) {
if (path.length === nums.length) {
result.push(path.slice());
return;
}
for (let i = 0; i < nums.length; i++) {
if (path.includes(nums[i])) {
continue;
}
path.push(nums[i]);
backtrack(nums, path);
path.pop();
}
}
backtrack(nums, []);
return result;
}
console.log(permute([1, 2, 3]));
这个函数中,backtrack 函数是核心递归函数,用于生成所有可能的排列。它通过 path 参数记录当前已经选择的元素,当 path 的长度等于输入数组 nums 的长度时,将 path 添加到结果数组 result 中。否则,遍历 nums 数组,如果当前元素已经在 path 中,就跳过;否则,将当前元素添加到 path 中,然后递归调用 backtrack 函数,再将当前元素从 path 中移除。
最后,调用 permute 函数并传入输入数组 [1, 2, 3],即可得到所有排列的情况。结果为 [[1,2],[1,3],[2,1],[2,3],[3,1],[3,2]]。
原文地址: https://www.cveoy.top/t/topic/pD9b 著作权归作者所有。请勿转载和采集!