はじめに
Recursionで中級のカリキュラムの中に再帰の項目があり、私は長い時間そこで躓いた記憶があります。。
現在はカリキュラムの2周目のなのですが、2周目にしてヘルパー関数の便利さに気づいたのでアウトプットしたいと思い記事にしようと思いました!!
ヘルパー関数とは
ざっくりいうと再帰関数の補助的な関数のことを言います。
なぜヘルパー関数が便利なのか
私はカリキュラム1周目のときは、関数の中に関数を入れることがいまいち理解できていなくて、すでに書かれている一つの関数だけでコーディング問題を解いていました。
ですが、学習している中でヘルパー関数というものを知りました。私は基本情報で配列やfor文なども勉強していたためそれと似たヘルパー関数を知ったときは問題を解くスピードも上がり、成長を感じられました!!
簡単な例
function reverseString(s){
// 関数を完成させてください
return reverseStringHelper(s,s.length-1,"");
}
function reverseStringHelper(s,index,output) {
if (index < 0) {
return output;
}
return reverseStringHelper(s,index-1,output += s[index]);
}
このコードは与えられた文字列を逆表示にして返すヘルパー関数です。逆表示なのでインデックスが0より小さくなると返して出力するという風な書き方をします。ヘルパー関数を知ってから躓いていた再帰が少しずつ分かるようになってきました。
さいごに
ヘルパー関数について説明しましたがこの関数にもデメリットはあると思います。でも学習初期なのでどんどんいろんなパターンを吸収してその中で最適解を出していけたら良いと思っています!引き続きカリキュラムを進めていきます!