2016-10-20 10 views
-1

何の結果を与えません。そして、私は問題 結果を見つけるカントcharCodeはから作成された文字列でなければなりません。に、String.fromCharCodeは、私は、ウィンドウには、結果を取得していないコードを実行した後にはJavaScript

function rot13(str) { 
 
    var te = []; 
 
    var i = 0; 
 
    var a = 0; 
 
    var newte = []; 
 

 
    while (i < str.length) { 
 
    te[i] = str.charCodeAt(i); 
 
    i++; 
 
    } 
 
    while (a != te.length) { 
 
    if (te[a] < 65) { 
 
     newte[a] = te[a] + 13; 
 
    } else 
 
     newte[a] = te[a]; 
 
    a++; 
 
    } 
 

 
    var mystring = String.fromCharCode(newte); 
 

 

 
    return mystring; 
 
} 
 

 
// Change the inputs below to test 
 
rot13("SERR PBQR PNZC");

+1

あなたは返された値との何もしない - あなたは何を期待していますか? – Li357

+1

'String.fromCharCode(newte);'おそらくどちらも期待したことをしません –

+0

あなたは私が恋しいことを私に説明できますか?私はいくつかの異なるシナリオを試してみましたが、私はいつもエラーを出すか何もしません。 – EdenLT

答えて

0

あなたは、個々の引数として各番号を渡すことを期待String.fromCharCode方法。コードサンプルでは、​​配列を単一の引数として渡していますが、これは機能しません。

あなたは配列を渡すことを可能にする代わりにapply()方法を、使用してみてください、それが複数の個別の引数にその変換します:

var mystring = String.fromCharCode.apply(null, newte); 
+1

'.call'はこのように配列をとらない、' .apply'です。 –

+0

おっと、ええ、あなたはまったく正しいです。回答を更新しています。 –

+0

すばらしい説明スティーブンありがとう。 – EdenLT

0

String.fromCharCode()のように、アレイ上で動作するように定義されていません見えます。

function rot13(str) { 
 
    var result = ""; 
 
    
 
    for (var i = 0; i < str.length; i++) { 
 
    var charCode = str.charCodeAt(i) + 1; 
 
    
 
    if (charCode < 65) { 
 
     charCode += 13; 
 
    } 
 
    
 
    result += String.fromCharCode(charCode); 
 
    } 
 
    
 
    return result; 
 
} 
 

 
// Change the inputs below to test 
 
console.log(rot13("SERR PBQR PNZC"));

注:私は文字の置換のためのロジックをコピーしたが、it doesn't seem correct

は次のように試してみてください。

+0

いや、私は期待通りに結果が得られないことを発見しました。それ以上のことをするつもりです。 – EdenLT

関連する問題