我正在做codewars挑战Replace With Alphabet Position,但我不理解它
I am doing codewars challenge Replace With Alphabet Position, but i don't understand it
题目是给定一个字符串,用它在字母表中的位置替换每个字母。
整整4个小时我都找不到解决办法。我尝试了regex(我还不太明白它是如何工作的)。我试图找到一个解决方案,但我不完全理解它
代码如下
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) + " "
};
for (var i = 0; i < text.length; i++)
这只是循环遍历text参数中的每个字母。
var code = text.toUpperCase().charCodeAt(i)
这开始定义字母的字母表位置。它基本上是说:"对于text
中的每个字符,返回其字符代码charCodeAt(i)
。
if (code > 64 && code < 91) {
result += (code - 64) + " "
};
正如第一条注释所说,大写字母A到Z的字符代码从65 (A)开始,以90 (Z)结束。因此,我们只需要字母A到Z的代码(例如,我们不关心空格或引号的代码)。因为我们想让A等于1,我们必须从字符代码中减去64(65 - 64 = 1, B也一样,66 - 64 = 2,等等)。
result += (code - 64) + " "
这部分将过滤后的字母代码添加到结果中,并添加一个空格以提高可读性。它对if
语句过滤的每个字符代码执行此操作。
return result.slice(0, result.length-1);
然后,简单地返回整个字符串并减去末尾不必要的空格。
注意:您也可以简单地返回result.trim()
以删除末尾的空格。
相关文章:
- 我没有'I don’我不理解for在循环中的用途
- C# WebView 不理解 JavaScript 调用 alert()(Windows 8 XAML 应用程序)
- 我没有'我不理解js的结构
- 可以'我不理解为什么使用JavaScript void函数
- Sammy.js不理解我的json
- 不理解Angular JS中的控制器
- 我无法将变量从动态列表传递到php页面进行处理.这是我不理解的逻辑问题吗
- Don'我不理解谷歌;s的无限负载示例有效
- AngularJS:我显然不理解ng-init的用法
- 不理解此函数调用中的参数
- 阿贾克斯回调.不理解 ajax 回调
- 不理解这个setTimeout是如何/为什么修复我的IE8问题的
- 不理解此forEach()方法的输出
- 我没有'我不理解以下javascript代码的重要性:
- 不理解JavaScript代码中的回调函数
- 我不理解javascript中的代码
- 语法不理解value.match
- 检查元素的类型,但我没有'我不理解;回来e'
- JavaScript闭包:返回不理解的值
- 我正在做codewars挑战Replace With Alphabet Position,但我不理解它