私は1週間の回帰の回りに頭をラッピングしています。そして、私はそれがどのように機能するかについてよく理解していると言いたい。私が苦労している詳細は、返されているものです。 8行目でreturn str;
はstrを配列として吐き出しますか?もしそうなら、繰り返しごとにnewArr
にプッシュできませんか?現在、私の出力は[undefined]
です。なぜこれが正しいのか理解したいと思います。ほとんどのプログラミング言語で複数の反復の復帰方法の理解
function permAlone(str, n, output = []) {
var n = n || str.length
if (n == 1) {
// console.log(str)
return str
} else {
for (var i = 1; i <= n; i++) {
permAlone(str, n - 1)
if (n % 2) {
var j = 1
} else {
j = i
}
swap(str, j - 1, n - 1)
}
}
}
function swap(a, i, j) {
var temp = a[i]
a[i] = a[j]
a[j] = temp
}
var newArr = [];
newArr.push(permAlone('abc'.split('')));
console.log(newArr);
これは、すべての場合で同じように機能し、現在の関数の実行を停止し、関数にどこに置かれていても戻り値を呼び出し元に送信します。 – Teemu
私の質問は、それはstr配列を出力するのでしょうか?私はなぜそれがnewArrにプッシュされていないのか分かりません。 – manuel