【发布时间】:2019-04-14 13:38:38
【问题描述】:
所以,基本上我在做一些 JS 练习并且我理解这段代码,只是无法弄清楚在 String.fromCharCode 函数中获取字符 Ascii 代码背后的数学原理是什么? 为什么要减 18?
让函数 LetterChanges(str) 获取传递的 str 参数并使用以下算法对其进行修改。将字符串中的每个字母替换为字母表中紧随其后的字母(即,c 变为 d,z 变为 a)。然后将这个新字符串中的每个元音(a、e、i、o、u)大写,最后返回这个修改后的字符串。
function LetterChanges(str) {
str = str.trim().toLowerCase();
var len = str.length;
var newStr = '';
for (var i = 0; i < len; i++) {
if (/[a-ce-gi-mo-su-y]/.test(str[i])) {
newStr += String.fromCharCode(((str[i].charCodeAt(0) - 18) % 26) +
97)
}
else if (/[zdhnt]/.test(str[i])) {
newStr += String.fromCharCode(((str[i].charCodeAt(0) - 18) % 26) +
65);
}
else {
newStr += str[i];
}
}
return newStr;
}
LetterChanges(readline());
【问题讨论】:
-
除非您发布代码应该做什么,否则我无法确切知道发生了什么......这是 CoderByte 的问题之一还是……
-
向我们展示您为尝试理解代码和编辑您的问题所做的工作,以使其针对您的问题。家庭作业问题对于 Stack Overflow 来说是可以的,但你需要做一些工作。见How do I ask and answer homework questions
标签: javascript