为什么这段代码给我以下错误消息?
TypeError: Object 97 has no method 'charCodeAt'
var str = "Caesar Cipher";
str = str.split("");
num = 2;
x = 0;
for (var i = 0; i < str.length; i++) {
x = 0;
while (x < num) {
if (str[i].charCodeAt(0) <= 122 && str[i].charCodeAt(0) >= 97) {
str[i] = str[i].charCodeAt()+x;
}
x++;
}
}
console.log(str);
如果有人对我的最终结果感兴趣:http://jsfiddle.net/zackarylundquist/8L9b5/
最佳答案
行:
str[i] = str[i].charCodeAt()+x;
将数组中的元素从字符串转换为数字。数字没有 charCodeAt()
方法,因此您会收到错误。使用以下内容:
str[i] = str[i].charCodeAt()+x + "";
这将使元素保持为字符串,并且您仍然可以调用 charCodeAt()
方法。
关于javascript - 为什么这会给我一个错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19760093/