CoderByte の演習を行っているときに、次の問題に遭遇しました。
> JavaScript 言語を使用して、渡された str パラメーターを関数 LetterChanges(str) に取り、次のアルゴリズムを使用してそれを変更します。文字列内のすべての文字を、アルファベットでそれに続く文字に置き換えます (つまり、c は d になり、z は a になります)。次に、この新しい文字列 (a、e、i、o、u) のすべての母音を大文字にし、最後にこの変更された文字列を返します。
私はそれを JSBin に書き出しましたが、うまくいきました (te でも、CoderByte ではうまくいきませんでした。私が書いたものが正しいのか、それが CoderByte の問題なのか、それとも私のコードが間違っていて、問題はJSBinにあります。
コードは次のとおりです。
function LetterChanges(str) {
var iLetters = str.split('');
var newStr = [];
for (var i = 0; i < str.length; i++) {
if (/[a-y]/ig.test(iLetters[i])) {
newStr[i] = String.fromCharCode(iLetters[i].charCodeAt(0) + 1);
if (/[aeiou]/ig.test(newStr[i])) {
newStr[i] = newStr[i].toUpperCase();
}
} else if (/[z]/ig.test(iLetters[i])) {
newStr[i] = "A";
} else if (/[^A-Z]/ig.test(iLetters[i])) {
newStr[i] = iLetters[i];
}
}
return newStr.join('');
}