Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用递归的JavaScript排列_Javascript_Recursion_Permutation - Fatal编程技术网

使用递归的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)-有可能全部得到吗?如果它工作不正常,可能是它的算法有问题。在这个链接中:有一个算法可以工作,它在循环中有递归-这是因为递归是用一个变量而不是一个返回来完成的吗?我不认为这个实现和你的实现是一样的。在链接中,存在具有内部循环的循环。你打算怎么做你自己的代码?只是在寻找答案之前我想我已经知道怎么做了,我不知道为什么它不起作用,因为它一定意味着有一些基本的东西我不明白,所以我想知道它是什么