私は、指定された配列内の文字を繰り返さずにすべての可能な並べ替えの配列を作る関数を作成しようとしています。問題は、recur()の再帰呼び出しが行われたときに、forループの残りの部分が実行されず、結果としてvar合計が1文字列で構成されることです。再帰関数呼び出しの後にループの実行が停止する -
function recur(arr,wordArr) {
if(arr.length == 0) {
total.push(wordArr);
} else {
for(var i = 0;i < arr.length;i++) {
var temp = arr;
var newwordArr = wordArr;
newwordArr += temp.splice(i, 1);
recur(temp,newwordArr);
}
}
}
var arr = "abc".split("");
var total = [];
recur(arr,'');
console.log(total);
'[AB'、 'BA']
合計=をしなければならない、私は見ていないんだか、私がしようとしているどのような何かがあります([a、b]は、 ')' RECURを呼び出しますそうすることは許されません。私はたくさんの検索をしましたが、これに対する答えを見つけることができませんでした。
それはあなたが必要なもののために十分ではなかったので、私は私の答えを削除しましたが、(HTTPS [ここでSOの質問があります] :/stackoverflow.com/questions/39927452/recursively-print-all-permutations-of-a-string-javascript)あなたがやろうとしていることをします。それをチェックして、結果を複製したり、コードを修正できるかどうかを確認してください。 – Kevin
@ケビンは助けてくれてありがとう! – Manuel