シーザーのパスワード


問題の説明
1つの暗号化方法は、1つの文の各アルファベットを一定の距離で伸ばし、別のアルファベットに変換することです.例えば、「AB」は1で「BC」、3で「DE」を表す.「z」が1に等しいと「a」になります.文字列sと距離nを入力し、sがnの暗号文の関数を生成し、ソリューションを完了します.
せいげんじょうけん
いくら押してもスペースは空いています.
sは、小文字、大文字、スペースのみから構成されます.
sの長さは8000以下です.
nは1以上,25以下の自然数である.
I/O例
s : "AB" 
n : 1	
result : "BC"
に答える
String.charCodeAt() / String.fromCharCode()
上記の埋め込み関数を用いて解いた.
charCodeAt()の場合、Stringのインデックスを受信します.
指定されたインデックスを表すUTF-16コードの0から65535までの整数を返します.
FromCharCode()は逆です.
UTF-16コードユニットのシーケンスから文字列が生成され、返されます.
次の画像は、アルファベットの小文字と大文字で整数を返す表です.
小文字
上の表に従って
1.指定された文字列を配列に変換
2.変換した配列をmapでスペースをスペースに戻す
3.スペースでない場合はtoUpperCaseで大文字に変換
4.大文字列に変換されたUTF-16コードが90より大きい場合はZを超え、90より大きい数字については-26を実行する
5.必要な結果値を含む配列.joinを使用して文字列にエクスポート

function solution(s, n) {
  
let arr= s.split('')   

return 
  arr.map((el)=>{
    if(el === ' '){
        return el
    }
    else{
      return el.toUpperCase().charCodeAt()+n>90 ? 
             String.fromCharCode(el.charCodeAt()+n-26)
             :
             String.fromCharCode(el.charCodeAt()+n)
    }
}).join('')
}