使用递归的JavaScript排列
我知道互联网上有很多解决我特定问题的方法,但我一直试图用一种特定的方法来解决它,但它不起作用,我真的不明白哪里出了问题。 在我的例子中,我只想打印排列。 这是我的密码:使用递归的JavaScript排列,javascript,recursion,permutation,Javascript,Recursion,Permutation,我知道互联网上有很多解决我特定问题的方法,但我一直试图用一种特定的方法来解决它,但它不起作用,我真的不明白哪里出了问题。 在我的例子中,我只想打印排列。 这是我的密码: a=“abc”; 功能f7(a、b){ //文件。写(“str:+a+”b:+b+””; 如果(b.length==2){ perm=b+a; 回烫; } var c=[]; var-str=[]; 对于(i=0;i
a=“abc”;
功能f7(a、b){
//文件。写(“str:+a+”b:+b+”
”;
如果(b.length==2){
perm=b+a;
回烫;
}
var c=[];
var-str=[];
对于(i=0;i”;
返回f7(str[i],c[i]);
}
//返回{str,c}
}
文件。填写(f7(a,“”);
//g=f7(a,“”);
//文件。写(g.str+“
”);
//文件。写(g.c+“
”)代码>在循环中返回值会导致转义循环。在循环完成之前立即停止的语句中,您将返回中的值
您可以使用临时变量在for循环中保存值,然后返回它
a=“abc”;
功能f7(a、b){
//文件。写(“str:+a+”b:+b+”
”;
如果(b.length==2){
perm=b+a;
回烫;
}
var c=[];
var-str=[];
var temp=“”;
对于(i=0;i”;
温度+=f7(str[i],c[i]);
}
返回温度
}
文件。填写(f7(a,“”);
//g=f7(a,“”);
//文件。写(g.str+“
”);
//文件。写(g.c+“
”)代码>循环中没有包含无条件返回语句的点,它永远不会迭代。嗨,zmag,谢谢你的帖子。我运行了它,现在我有两个具体的排列:abc和acb,但总共应该有6个(bac bca cab cba)-有可能全部得到吗?如果它工作不正常,可能是它的算法有问题。在这个链接中:有一个算法可以工作,它在循环中有递归-这是因为递归是用一个变量而不是一个返回来完成的吗?我不认为这个实现和你的实现是一样的。在链接中,存在具有内部循环的循环。你打算怎么做你自己的代码?只是在寻找答案之前我想我已经知道怎么做了,我不知道为什么它不起作用,因为它一定意味着有一些基本的东西我不明白,所以我想知道它是什么