【发布时间】:2025-12-22 15:00:15
【问题描述】:
我在进行 CoderByte 练习时遇到了以下问题:
>使用 JavaScript 语言,让函数 LetterChanges(str) 获取传递的 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('');
}
【问题讨论】:
-
似乎他们的后端 JS 运行器被窃听了,或者是控制台中的错误,尽管它看起来无关。
-
谢谢,我很感激。在技术面试中伸展我的 JS 肌肉,这让我感到压力过大。
标签: javascript regex string-matching jsbin