Webフロントエンド面接指導(20):JavaScriptで文字列をどうやって反転させますか?


テーマコメント
プログラムでは文字列は非常に一般的です.プログラムのほとんどのデータは文字列として処理されます.文字の処理方法に詳しい必要があります.回答する時にできるだけ多くの解決方法を話したほうがいいです.
文字列の反転の方法
1)文字列関数を使う
  //str=hello 
  function reverseString(str) {
      var array = str.split('');//['h','e','l','l','o'];
      array = array.reverse();// ['o','l','l','e','h'];
      str = array.join('');//"olleh"
      return str;
  }
    上のコードは1行のコードをマージできます.
//str=hello
  function reverseString(str) { 
      return str.split('').reverse().join('');;
  }
2)forサイクルを使う
function reverseString(str) {   
var newStr="";
for(var i=str.length-1;i>=0;i--){
newStr+=str[i];
}
return newStr;
}
            逆順で文字列を巡回して、後から文字列を積算します.
3)再帰的に使用する
function reverseString(str) {
 if (str === "") {
 return "";
 } else {
 return reverseString(str.substr(1)) + str.charAt(0);
 }
}
reverseString("hello"); // => olleh
第一部の再帰方法覚えておく必要があります.一回だけ呼び出すことはできません.いくつかのネストされた呼び出しがあります.
 
毎回str==="?"を呼び出します.
reversestring(str)
+str.chart(0)
最初の呼び出し
reverseString(「Hello」)
reverseString(「ello」)+「h」
第二コール
reverseString(「ello」)
reverseString("llo")+"e"
コール3回目
reverseString(「llo」)
reverseString(「ロ」+「l」
4回目の呼び出し
reverseString(「ロ」)
reverseString(「o」+「l」
5回目の呼び出し
reverseString(「o」)
reverseString(")+"o"
第二部分の再帰方法
 
呼び出しごと
戻る
5回目の呼び出し
reverseString(")+"o"="o"
4回目の呼び出し
reverseString(「o」+「l」=「o」+「l」
コール3回目
reverseString(「l o」)+「l」=「o」+「l」+「l」
第二コール
reverserString(「l l o」)+「e」=「o」+「l」+「l」+「e」
最初の呼び出し
reverserString(「ello」)+「h」=「o」+「l」+「l」+「e」+「h」
上の方法はまだ改良を続けて、三元の操作符に変えられます.
function reverseString(str) {
 return (str === '') ? '' : reverseString(str.substr(1)) + str.charAt(0);
}
reverseString("hello"); // => olleh