私は今朝codewarsにいましたが、再帰メソッドを介してパラメータとして渡された文字列を逆にする関数を求めるこのKataがあります。この再帰的なjavascript関数を説明してください
この問題の最も良い解決策はこれでした。
function reverse(str) {
return str.length > 1 ? reverse(str.slice(1)) + str[0] : str;
}
私はすべての今朝、このために研究し、私はまだここで何が起こっているのか分からない:
+ str[0]
誰かが私のためにこれを明確にしてくださいことはできますか?
「最良のソリューション」とは、最良の再帰的なソリューションを意味しますか?私はこれが文字列を逆にする効率的な方法であるかどうかは疑問だ。 –
再帰呼び出しが末尾にないため、これは悪い解決策です。対象をよりよく理解するために、関数を末尾再帰バージョンに変換してみてください。ヒント:アキュムレータ通過スタイル。 – ftor