我的rot-13(Caesar Decipher)Javascript算法有什么问题?
function rot13(str) { // LBH QVQ VG!
var array=str.split(" ");
for(var i=0;i<array.length;i++){
array[i]=array[i].split('');
}
for(var j=0;j<array.length;j++){
for(var k=0;k<array[j].length;k++){
var s=array[k];
if(s=="!"||s=="?"||s=="."){
s=s;
}
else if(s.charCodeAt(0)==77||s.charCodeAt(0)<77){
s=String.fromCharCode(s.charCodeAt(0)+13);
}
else if(s.charCodeAt(0)>77){
s=String.fromCharCode(s.charCodeAt(0)-13);
}
}
for(i=0;i<array.length;i++){
array[i]=array[i].join("");
}
array=array.join(" ");
return array;
}
}
// Change the inputs below to test
rot13("IM JOE!");
因此,例如,ROT13( “SERR YBIR!”)应该给你 “免费LOVE!”。 错误消息显示“TypeError:s.charCodeAt不是函数”。
是什么意思?我应该如何解决它?
也许你想'变种S =阵列[J] [K];' –
什么,当你尝试做'charCodeAt()'的s'的'价值? –
Jaromanda我做到了。现在,该函数返回IM JOE!没有变化 – user132522