我遇到了这段代码的问题。我想打印所有排列,但输出错误。
function Swap (array,index1,index2)
{
var temp = array[index1];
array[index1] = array[index2];
array[index2] = temp;
}
function Permutation(ArrayNum , StartIndex)
{
if(StartIndex == ArrayNum.length-1)
{
console.log(ArrayNum);
}
else
{
for(i = StartIndex; i< ArrayNum.length; i++)
{
Swap(ArrayNum,StartIndex,i);
Permutation(ArrayNum,StartIndex + 1);
Swap(ArrayNum,StartIndex,i);
}
}
}
例如,对于三个数字,我得到此输出,这不是排列的完整列表。
[1, 2, 3]
[1, 3, 2]
我该如何解决这个问题?
答案 0 :(得分:0)
您的i
变量是全局变量,它应该是本地变量。如果您使用"use strict";
for(i = StartIndex; i< ArrayNum.length; i++)
^
ReferenceError: i is not defined
没有错误,它只会经历一个循环。