阵列即使交换后也无法保持确切位置?

时间:2019-05-05 10:00:02

标签: javascript jquery arrays

我正在尝试编写一个用于在数组上执行置换的函数,并将输出推入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。请帮助

enter image description here

0 个答案:

没有答案