誰かの Coderbyte コードを分析/リバース エンジニアリングしようとしています。この課題の目的は、文字列パラメーターを取得し、文字列のすべての文字をアルファベットでそれに続く文字に置き換えることです (a は b になり、z は a になります)。など)。次に、新しい文字列のすべての母音を大文字にします (a、e、i、o、u)。誰かのコードを見つけた後、私は彼/彼女がそれを単純化した方法に驚きましたが、2 つの具体的な質問がありました:
1) コードのどの部分 (以下を参照) が大文字になっていますか??? 見てないから見逃してる???(おそらく完全に明白なものになるだろうと見てください)
と
2) else ステートメントはいつ機能しますか? if-else は if (n>-1) なので、いつ n <= -1 になるのでしょうか? コードでは、n は常に、指定された文字列パラメーターの特定の文字のインデックスになります。これは、oldAlph のインデックスです。そのインデックスは 0 ~ 25 で構成されます。したがって、いつ -1、または -2 になるかわかりません...
コードは次のとおりです。
function LetterChanges(str) {
// code goes here
var n = 0;
var nstr = "";
var oldAlph = ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"];
var newAlph = ["b","c","d","E","f","g","h","I","j","k","l","m","n","O","p","q","r","s","t","U","v","w","x","y","z","A"];
for (i=0;i<str.length;i++) {
n = oldAlph.indexOf(str.substr(i,1));
if (n>-1) {
nstr = nstr + newAlph[n];
} else {
nstr = nstr + str.substr(i,1);
}
}
return nstr;
}
// keep this function call here
// to see how to enter arguments in JavaScript scroll down
LetterChanges(readline());