我正在尝试分析/逆向工程某人的 Coderbyte 代码。这个挑战的目的是获取一个字符串参数,并用字母表中跟随它的字母替换字符串的每个字母(a 变为 b,z 变为, ETC)。然后我们将新字符串中的每个元音大写(a,e,i,o,u)。找到某人的代码后,我很惊讶他/她如何简化它,但我有两个具体问题:
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());