我的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