我正在尝试编写一个用于在数组上执行置换的函数,并将输出推入allPossibleRoutes数组,像这样
var allPossibleRoutes = [];
function permute(arr, start, end) {
if (start == end) {
console.log(arr);
allPossibleRoutes.push(arr);
} else {
for (let i = start; i <= end; i++) {
arr = swap(arr, start, i);
permute(arr, start + 1, end);
arr = swap(arr, start, i);
}
}
}
function swap(arr, i, j) {
var temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
return arr;
}
var placeToCover = ["C1", "C2", "L1"];
permute(placeToCover, 0, placeToCover.length - 1);
console.log(allPossibleRoutes);
但是,我在控制台中得到了期望的结果,但是数组内元素的位置仍然与输入“ placeToCover”中提供的位置相同。 在我的控制台中,我以数组的形式获取所有可能的排列,但是当我中断数组以查看其索引时,它与我按顺序提供的相同。
此外,allPossibleRoutes包含相同的数组,重复了六次,我提供了'placeToCover。请帮助