Webフロントエンド面接指導(20):JavaScriptで文字列をどうやって反転させますか?
2108 ワード
テーマコメント
プログラムでは文字列は非常に一般的です.プログラムのほとんどのデータは文字列として処理されます.文字の処理方法に詳しい必要があります.回答する時にできるだけ多くの解決方法を話したほうがいいです.
文字列の反転の方法
1)文字列関数を使う
3)再帰的に使用する
毎回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」
上の方法はまだ改良を続けて、三元の操作符に変えられます.
プログラムでは文字列は非常に一般的です.プログラムのほとんどのデータは文字列として処理されます.文字の処理方法に詳しい必要があります.回答する時にできるだけ多くの解決方法を話したほうがいいです.
文字列の反転の方法
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