挑战说给定一个字符串,用字母表中的位置替换每个字母。
4个小时我无法找到解决方案。我试过正则表达式(不知道它是如何工作的)。我试图找到一个解决方案,但我完全不了解它
代码是这个
function alphabetPosition(text) {
var result = "";
for (var i = 0; i < text.length; i++){
var code = text.toUpperCase().charCodeAt(i)
if (code > 64 && code < 91) {
result += (code - 64) + " "
};
}
return result.slice(0, result.length-1);
}
var code =后我不明白...... 为什么这样做
if (code > 64 && code < 91) {
result += (code - 64) + " "
};
答案 0 :(得分:0)
dplyr
这只是循环遍历text参数中的每个字母。
for (var i = 0; i < text.length; i++)
这开始定义字母的字母位置。它基本上说:“对于var code = text.toUpperCase().charCodeAt(i)
中的每个字符,返回其字符代码text
。
charCodeAt(i)
正如第一句话所述,大写字母A到Z的字符代码以65(A)开始,以90(Z)结尾。因此,我们只需要字母A到Z的代码(例如,我们不在乎空格或引号的代码)。 由于我们希望A等于1,因此必须从字符代码中减去64 (65-64 = 1,对于B而言,同样,66-64 = 2,依此类推)。
if (code > 64 && code < 91) {
result += (code - 64) + " "
};
此部分将过滤后的字母代码添加到结果中,并增加了可读性。它针对由result += (code - 64) + " "
语句过滤的每个字符代码执行此操作。
if
然后,我们只返回整个字符串并在末尾减去不必要的空格。
注意:您也可以简单地返回return result.slice(0, result.length-1);
来删除最后的空格。